Back to Freedom.Tech Back
All Rely releasesAll versions
Release Wed, May 20, 2026 1 min read

Rely 1.5.2

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
  • GreedyClient is called, which by default invokes client.Disconnect
  • client.Disconnect calls client.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.