Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I know that you said you are scared of changes to the core of Quartz and for good reason. I am new here and I don't understand this code base. I want to submit my suggestions here but I'm not going to claim this is correct. There are always many ways to solve problems.
My goals here are to attempt to resolve #2354 by implementing the two core tenants of async:
I have attempted to clarify the pause mechanism by implementing a clearly named async pause token. I replaced some old
lock
s with new SemaphoreSlim, which allows async wait. There is a concern that SemaphoreSlim does not maintain the order of those awaiting.I have tested this in my own solution and "it works on my machine". It also appears to pass unit tests. So while it's functional, it may have another set of edge cases.
I tried to maintain the existing structure and avoid breaking changes.