Lock acquisition by the same thread - deadlock protection

Dieter Maurer dieter at handshake.de
Thu Mar 12 15:08:41 EDT 2020


Yonatan wrote at 2020-3-11 16:24 +0200:
>That code I'm talking about didn't require a reentrant lock - the
>algorithm really wasn't reentrant.
>
>Let me clarify my point: I'm wondering why the non-reentrant lock
>doesn't raise an exception immediately on this
>erroneous situation.
>I thought it could be altered, or at least we could add an option to
>let a `threading.Lock` behave like a pthread
>mutex in mode `PTHREAD_MUTEX_ERRORCHECK`: Disallow double locking by
>same thread, disallow unlocking
>by another thread.

The documentation for the basic lock explicitely allows
lock release by a foreign thread.
As I understand the documentation, this lock type is by design
very basic - a mechanism to implement higher level abstractions.
I use other synchronisation mechanisms when the basic lock does
not fit my requirements.


More information about the Python-list mailing list