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
Observable.Start has an overload that takes an scheduler. I am writing my own Limited Concurrency scheduler that returns a Disposable which when disposed releases my semaphores so my scheduler know that it can kick off other tasks that are waiting. However, I noticed that the IDisposable returned by Schedule method is never disposed. Upon looking further I found that the Observable.Start uses the following ScheduleAction method of System.Reactive.Concurrency.Scheduler.
As seen in the code above, after the action is called, it never calls Dispose or even returns the same disposable along that was passed to it. This is really limiting us in our scheduler. Consider the following scheduler.
Observable.Start has an overload that takes an scheduler. I am writing my own Limited Concurrency scheduler that returns a Disposable which when disposed releases my semaphores so my scheduler know that it can kick off other tasks that are waiting. However, I noticed that the IDisposable returned by Schedule method is never disposed. Upon looking further I found that the Observable.Start uses the following ScheduleAction method of System.Reactive.Concurrency.Scheduler.
As seen in the code above, after the action is called, it never calls Dispose or even returns the same disposable along that was passed to it. This is really limiting us in our scheduler. Consider the following scheduler.
now consider the following use
The above code writes only 3 lines to the console, the semaphores are allocated and never released.
The text was updated successfully, but these errors were encountered: