mutex — mutex-module#

De mutex-module biedt een primitief voor wederzijdse uitsluiting om kritieke codesecties of gedeelde gegevens te beschermen tegen gelijktijdige toegang door een interrupt-serviceroutine en de hoofdthread.

Het verkrijgen en vrijgeven van de lock gebeurt via een context manager (with-statement), die blokkeert totdat de mutex beschikbaar is. Er is ook een niet-blokkerende Mutex.test()-methode beschikbaar.

Voorbeeld:

from mutex import Mutex

mtx = Mutex()

# Acquire for a critical section (blocks if already held).
with mtx:
    # ... protected code, e.g. shared buffer access ...
    pass

# Or try without blocking.
if mtx.test():
    try:
        # ... protected code ...
        pass
    finally:
        mtx.release()

class Mutex – mutex-object#

class mutex.Mutex#

Maakt een niet-vergrendeld mutex-object aan.

release() None#

Ontgrendelt de mutex. Werpt mutex.MutexException op als de mutex momenteel niet vergrendeld is.

test() bool#

Probeert de mutex op een niet-blokkerende manier te verkrijgen. Geeft True terug bij succes en False als de mutex al vergrendeld is.

Gebruik de instantie als context manager (with-statement) om de mutex op een blokkerende manier te verkrijgen. De mutex wordt automatisch vrijgegeven bij het verlaten.

Uitzonderingen#

exception mutex.MutexException#

Subklasse van OSError. Wordt door Mutex.release opgeworpen wanneer de mutex al ontgrendeld is.