Previous: 6.10.1 Scheduler Objects Up: 6. Generic Operating System Next: 6.11.1 Mutex Objects

6.11 mutex -- Mutual exclusion support

The mutex module defines a class that allows mutual-exclusion via acquiring and releasing locks. It does not require (or imply) threading or multi-tasking, though it could be useful for those purposes.

The mutex module defines the following class:

class mutex ()
Create a new (unlocked) mutex.

A mutex has two pieces of state -- a ``locked'' bit and a queue. When the mutex is not locked, the queue is empty. Otherwise, the queue contains zero or more (function, argument) pairs representing functions (or methods) waiting to acquire the lock. When the mutex is unlocked while the queue is not empty, the first queue entry is removed and its function(argument) pair called, implying it now has the lock.

Of course, no multi-threading is implied - hence the funny interface for lock(), where a function is called once the lock is acquired.


Subsections


Previous: 6.10.1 Scheduler Objects Up: 6. Generic Operating System Next: 6.11.1 Mutex Objects
Release 2.2.3, documentation updated on 30 May 2003.
See About this document... for information on suggesting changes.

AltStyle によって変換されたページ (->オリジナル) /