OK, the problem here is how we have (tried to) protect access to the “fTriggersAwaitingHandling” variable, in order to make it safely accessible (writeable) by a non-LIVE555 thread. To date, we have declared this variable as “volatile”, but that isn’t the proper mechanism for inter-thread communication (see, for example, <https://learn.microsoft.com/en-us/cpp/cpp/volatile-cpp?view=msvc-170#iso-conformant>).
Instead, the proper solution will be to define “EventTriggerId” as a “std:atomic_flag”. To date (for 25+ years), I have avoided using the C++ standard library in the LIVE555 code, mainly because I wanted to accommodate small platforms (e.g., embedded systems) that might need too small a footprint to want to include the standard library. But that’s probably not a realistic concern anymore. So, a future release of the LIVE555 code (hopefully coming within about a week) will make this change to define “EventTriggerId” as a “std:atomic_flag”. (This will be #ifdef’d, so that anyone who wants to use the existing (less safe) “volatile” implementation, without the standard library, can continue to do so.) Stay tuned... Ross Finlayson Live Networks, Inc. http://www.live555.com/ _______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel