🚀 Pre-alpha state. A platform designed for building enterprise-grade, multi-tenant products using Azure, .NET, React, TypeScript, Infrastructure as Code, etc.
In rare conditions, the code allows the unit of work and/or the events to not be published at the end of the request.
Multiple threads can decrement the concurrent counter at the same time using Interlocked to ensure atomicity of the operation. However, when reading the data, Interlocked was not used, leading to potential race conditions.
Checklist
[ ] I have added a Label to the pull-request
[ ] I have added tests, and done manual regression tests
[ ] I have updated the documentation, if necessary
Summary & Motivation
In rare conditions, the code allows the unit of work and/or the events to not be published at the end of the request.
Multiple threads can decrement the concurrent counter at the same time using Interlocked to ensure atomicity of the operation. However, when reading the data, Interlocked was not used, leading to potential race conditions.
Checklist