mutex — mutex modul

Modul mutex pruža primitiv za međusobno isključivanje radi zaštite kritičnih dijelova koda ili dijeljenih podataka od istovremenog pristupa od strane prekidne servisne rutine i glavne dretve.

Stjecanje i otpuštanje brave izvodi se putem upravitelja konteksta (with naredba), koji blokira dok mutex ne postane dostupan. Također je dostupna neblokirajuća metoda Mutex.test().

Primjer:

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()

klasa Mutex – mutex objekt

class mutex.Mutex

Stvara otključani mutex objekt.

release() None

Otključava mutex. Podiže mutex.MutexException ako mutex trenutno nije zaključan.

test() bool

Pokušava steći mutex na neblokirajući način. Vraća True u slučaju uspjeha i False ako je mutex već zaključan.

Za stjecanje mutexa na blokirajući način, koristite instancu kao upravitelj konteksta (with naredba). Mutex se automatski otpušta pri izlasku.

Iznimke

exception mutex.MutexException

Podklasa OSError. Podiže je Mutex.release kada je mutex već otključan.