[fpc-pascal] Critical Section and Recursive Calls
African Wild Dog
paintedlycaon at gmail.com
Thu Mar 30 08:36:02 CEST 2017
Hello,
I'm writing a function protected by a critical section which can have
recursive calls under certain conditions.
Using the TCriticalSection class, after my thread acquires a critical
section, if my thread make 6 additional calls to TCriticalSection.Enter, to
release the critical section my thread will have to make 6 additional calls
to TCriticalSection.Leave?
If so, is this behaviour the same on all platforms?
>From the Windows API:
*"After a thread has ownership of a critical section, it can make
additional calls to EnterCriticalSection or TryEnterCriticalSection without
blocking its execution. This prevents a thread from deadlocking itself
while waiting for a critical section that it already owns. The thread
enters the critical section each time EnterCriticalSection and
TryEnterCriticalSection succeed. A thread must call LeaveCriticalSection
once for each time that it entered the critical section."*
Regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20170330/840851ae/attachment.html>
More information about the fpc-pascal
mailing list