1
Vote

EventLoopScheduler SemaphoreFullException

description

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:
http://social.msdn.microsoft.com/Forums/en-US/rx/thread/223f2447-4cb9-47ce-be21-6fd0e5b45e30/?prof=required

comments

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?

Thanks!

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.