forked from TrueCloudLab/neoneo-go
eeeb0f6f0e
Blockchain's notificationDispatcher sends events to channels and these channels must be read from. Unfortunately, regular service shutdown procedure does unsubscription first (outside of the read loop) and only then drains the channel. While it waits for unsubscription request to be accepted notificationDispatcher can try pushing more data into the same channel which will lead to a deadlock. Reading in the same method solves this, any number of events can be pushed until unsub channel accepts the data. |
||
---|---|---|
.. | ||
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 | ||
doc.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 |