Remove unused goroutine.
This commit is contained in:
parent
0f808dc00f
commit
83e27ae7db
3 changed files with 0 additions and 78 deletions
3
cmd.go
3
cmd.go
|
@ -185,9 +185,6 @@ func main() {
|
|||
go StoreNotifiedMempoolRecvTxs(NotifiedRecvTxChans.add,
|
||||
NotifiedRecvTxChans.remove,
|
||||
NotifiedRecvTxChans.access)
|
||||
go NotifyBalanceSyncer(NotifyBalanceSyncerChans.add,
|
||||
NotifyBalanceSyncerChans.remove,
|
||||
NotifyBalanceSyncerChans.access)
|
||||
|
||||
// Start client connection to a btcd chain server. Attempt
|
||||
// reconnections if the client could not be successfully connected.
|
||||
|
|
13
rpcclient.go
13
rpcclient.go
|
@ -127,19 +127,6 @@ func (n blockConnected) handleNotification() error {
|
|||
curBlock.BlockStamp = *bs
|
||||
curBlock.Unlock()
|
||||
|
||||
// btcd notifies btcwallet about transactions first, and then sends
|
||||
// the new block notification. New balance notifications for txs
|
||||
// in blocks are therefore sent here after all tx notifications
|
||||
// have arrived and finished being processed by the handlers.
|
||||
workers := NotifyBalanceRequest{
|
||||
block: *n.hash,
|
||||
wg: make(chan *sync.WaitGroup),
|
||||
}
|
||||
NotifyBalanceSyncerChans.access <- workers
|
||||
if wg := <-workers.wg; wg != nil {
|
||||
wg.Wait()
|
||||
NotifyBalanceSyncerChans.remove <- *n.hash
|
||||
}
|
||||
AcctMgr.Grab()
|
||||
AcctMgr.BlockNotify(bs)
|
||||
AcctMgr.Release()
|
||||
|
|
62
rpcserver.go
62
rpcserver.go
|
@ -2734,65 +2734,3 @@ func StoreNotifiedMempoolRecvTxs(add, remove chan btcwire.OutPoint,
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// NotifyBalanceSyncerChans holds channels for accessing
|
||||
// the NotifyBalanceSyncer goroutine.
|
||||
var NotifyBalanceSyncerChans = struct {
|
||||
add chan NotifyBalanceWorker
|
||||
remove chan btcwire.ShaHash
|
||||
access chan NotifyBalanceRequest
|
||||
}{
|
||||
add: make(chan NotifyBalanceWorker),
|
||||
remove: make(chan btcwire.ShaHash),
|
||||
access: make(chan NotifyBalanceRequest),
|
||||
}
|
||||
|
||||
// NotifyBalanceWorker holds a block hash to add a worker to
|
||||
// NotifyBalanceSyncer and uses a chan to returns the WaitGroup
|
||||
// which should be decremented with Done after the worker is finished.
|
||||
type NotifyBalanceWorker struct {
|
||||
block btcwire.ShaHash
|
||||
wg chan *sync.WaitGroup
|
||||
}
|
||||
|
||||
// NotifyBalanceRequest is used by the blockconnected notification handler
|
||||
// to access and wait on the the WaitGroup for workers currently processing
|
||||
// transactions for a block. If no handlers have been added, a nil
|
||||
// WaitGroup is returned.
|
||||
type NotifyBalanceRequest struct {
|
||||
block btcwire.ShaHash
|
||||
wg chan *sync.WaitGroup
|
||||
}
|
||||
|
||||
// NotifyBalanceSyncer maintains a map of block hashes to WaitGroups
|
||||
// for worker goroutines that must finish before it is safe to notify
|
||||
// websocket clientss of a new balance in the blockconnected notification
|
||||
// handler.
|
||||
func NotifyBalanceSyncer(add chan NotifyBalanceWorker,
|
||||
remove chan btcwire.ShaHash,
|
||||
access chan NotifyBalanceRequest) {
|
||||
|
||||
m := make(map[btcwire.ShaHash]*sync.WaitGroup)
|
||||
|
||||
for {
|
||||
select {
|
||||
case worker := <-add:
|
||||
wg, ok := m[worker.block]
|
||||
if !ok {
|
||||
wg = &sync.WaitGroup{}
|
||||
m[worker.block] = wg
|
||||
}
|
||||
wg.Add(1)
|
||||
m[worker.block] = wg
|
||||
worker.wg <- wg
|
||||
|
||||
case block := <-remove:
|
||||
if _, ok := m[block]; ok {
|
||||
delete(m, block)
|
||||
}
|
||||
|
||||
case req := <-access:
|
||||
req.wg <- m[req.block]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue