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 10: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 3: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 3:55 AM

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