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.