jonas.maebe at elis.ugent.be
Fri Feb 17 12:58:36 CET 2012
On 16 Feb 2012, at 23:56, David Jenkins wrote:
> 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 FreePascal.
http://edn.embarcadero.com/article/28258 indicates that promoting read
locks to write locks should work by design (which the current FPC
implementation doesn't support either), so it's logical to assume that
acquiring a read lock while you hold a write lock should also be
possible. Feel free to file a bug report.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the fpc-devel