Skip to content

Conversation

@MarkCiliaVincenti
Copy link

Thread A locks on key ABC and is processing
Thread B obtains locks for key ABC and is waiting for thread A to finish
Thread A finishes and removes the lock from the dictionary, while thread B enters the lock
Thread C tries to lock on key ABC but the entry was deleted by thread A, therefore threads B and C process concurrently despite that they share the same key.

This PR fixes this issue and also uses pooled semaphoreslim objects to reduce allocations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant