Il modulo mutex definisce una classe che consente di implementare la mutua esclusione acquisendo e rilasciando i locks. Non richiede (o implica) threading o multi-tasking, anche se potrebbe essere utile per questi scopi.
Il modulo mutex definisce le seguenti classi:
| ) |
Lo stato di un mutex � composto di due elementi -- un bit ``locked''
ed una coda. Quando il mutex non � bloccato, la coda � vuota.
Altrimenti, la coda contiene zero o pi� coppie
(funzione, argomento) che rappresentano funzioni (o
metodi) in attesa di acquisire il lock. Quando il mutex � non
bloccato mentre la coda � non vuota, la prima voce nella coda viene
rimossa e la corrispondente funzione (argomento) della coppia viene
chiamata, implicando l'acquisizione del lock.
Naturalmente, non � implicato il multi-threading - da cui la simpatica interfaccia per il lock(), in cui una funzione viene chiamata dopo che il blocco � stato acquisito.