EventLoopScheduler SemaphoreFullException


EventLoopScheduler.Schedule may throw SemaphoreFullException. It appears that it may be due to a couple of race conditions in the Run method:
  1. Between the call to Wait and acquisition of the lock.
  2. Dequeueing expired items in a loop, without calling Wait for each item.
Related discussion:


malayeri wrote Nov 5, 2013 at 9:00 PM

Dave, your proposed fix on the forum thread looks like it could work, but I'm a bit nervous about changing any kind of concurrency code. Would you be able to submit a pull request, or alternatively, review any code changes I make?


davedev wrote Nov 6, 2013 at 2:05 AM

Sure, I'll fix it and include a unit test. I'll make some time next weekend if that's alright.

malayeri wrote Nov 6, 2013 at 2:55 AM

That would be great! Thanks! We plan to do a release of Rx around early December, so this timing would be perfect.

davedev wrote Oct 9, 2014 at 5:00 PM