[fpc-devel] TMultiReadExclusiveWriteSynchronizer

David Jenkins david at scootersoftware.com
Thu Feb 16 23:56:27 CET 2012

Under Delphi if the TMultiReadExclusiveWriteSynchronizer writelock is 
held a read is not blocked if the ThreadID for the read is the same as 
the ThreadID for the write.  Under FreePascal if writelock is held the 
read is always blocked regardless of ThreadID or anything else 
(implemented in the BeginRead method).

I have some third party code that assumes that 
TMultiReadExclusiveWriteSynchronizer will work as it does in Delphi.  I 
am wondering if the freepascal implementation is purposeful (read block 
even when in same thread is intentional) and I should talk to my third 
party vendor.  Or if this is something that could/should be addressed in 


David Jenkins
Scooter Software

More information about the fpc-devel mailing list