Original release notes
Release notes
No breaking changes, only solving correctness issues. Everyone should upgrade
# Fixed Rare Dispatcher Deadlock
This version fixes a rare deadlock caused by the dispatcher and the When.GreedyClient hook. The fix was simply to move the hook calls to the client.write loop from the client.send to eliminate a class of recursive bugs. This deadlock occurred in the following scenario:
- assume the dispatcher's updates channel is full
- an event is received and the dispatcher broadcasts
- the client it broadcasts to has a full buffer
GreedyClientis called, which by default invokesclient.Disconnectclient.Disconnectcallsclient.CloseAllSubs, which in turn tries to send
an unindexing update to the dispatcher's updates channel (deadlock)
# Fixed Subscription Race Condition
We also fixed a race condition in the subscription handling. The problem was that, if On.Req returns an error very very quickly, before the call client.Open, the subscription would be first closed by the processor (no-op), and then subsequently re-opened.



