mirror of
https://github.com/nspcc-dev/neo-go.git
synced 2024-11-26 19:42:23 +00:00
af6a6f5f30
There is a notification pushed into the channel when block is being added, that notification is read by special goroutine that then forwards it to all subscribers to that particular event. Consensus goroutine is one of that subscribers, so for the system to properly function it has to read these events, but at the same time it can generate new blocks inside, so in some cases it can generate two blocks without ever reading from the subscription channel and this will lead to a deadlock. To avoid that we need to check subscription channel for events on every loop. |
||
---|---|---|
.. | ||
testdata | ||
block.go | ||
block_test.go | ||
cache.go | ||
cache_test.go | ||
change_view.go | ||
change_view_test.go | ||
commit.go | ||
commit_test.go | ||
consensus.go | ||
consensus_test.go | ||
crypto.go | ||
crypto_test.go | ||
payload.go | ||
payload_test.go | ||
prepare_request.go | ||
prepare_request_test.go | ||
prepare_response.go | ||
prepare_response_test.go | ||
recovery_message.go | ||
recovery_message_test.go | ||
recovery_request.go | ||
recovery_request_test.go |