[Mono-dev] Atomic semantics with Interlocked
vlbrez at microsoft.com
Thu Aug 18 10:03:00 UTC 2016
Lately I’ve been investigating a thread pool related hang on arm64 which I tracked it down to some missing memory barriers. It seems that, although the documentation doesn’t seem to imply memory fences for Interlocked functions, the thread pool MS code assumes it does.
How should we proceed with the fix ? Get MS to follow their documentation in reference source and explicitly use a memory barrier where needed ? Add memory barriers explicitly on our own bcl ? Get the Interlocked icalls to do an additional memory barrier so we leave managed code intact ?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-devel-list