You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We now exit the drainLoop depending on whether the loop could be actually progress. Previously, the loop attempted to enter a guarded block that can be processed by a single thread only. If the drain loop block was already invoked by a different thread, then the parent caller of drainLoop would re-attempt to run the drainLoop until the subscriber had no demand or the buffer became empty. In case of recursion, a reentrant call to drainLoop could never succeed as the drain loop guard was engaged with the parent call.
[resolves#285]
0 commit comments