It looks like the mono implementation has no MemoryBarrier
calls inside the ReaderWriterLockSlim
methods. So when I make any changes inside a write lock
, I can receive old cached values in another thread which uses a read lock
.
Is it really possible? Should I insert MemoryBarrier
before and after the code inside Read and Write lock?
Looking at (what I think is) the mono source, the Mono ReaderWriterLockSlim
is implemented using Interlocked
calls.
These calls include a memory barrier on x86, so you shouldn't need to add one.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With