diff options
Diffstat (limited to 'Lib/mutex.py')
-rw-r--r-- | Lib/mutex.py | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/Lib/mutex.py b/Lib/mutex.py index 9271d34..2348a2e 100644 --- a/Lib/mutex.py +++ b/Lib/mutex.py @@ -13,39 +13,39 @@ for lock, where a function is called once the lock is aquired. """ class mutex: - def __init__(self): - """Create a new mutex -- initially unlocked.""" - self.locked = 0 - self.queue = [] + def __init__(self): + """Create a new mutex -- initially unlocked.""" + self.locked = 0 + self.queue = [] - def test(self): - """Test the locked bit of the mutex.""" - return self.locked + def test(self): + """Test the locked bit of the mutex.""" + return self.locked - def testandset(self): - """Atomic test-and-set -- grab the lock if it is not set, - return true if it succeeded.""" - if not self.locked: - self.locked = 1 - return 1 - else: - return 0 + def testandset(self): + """Atomic test-and-set -- grab the lock if it is not set, + return true if it succeeded.""" + if not self.locked: + self.locked = 1 + return 1 + else: + return 0 - def lock(self, function, argument): - """Lock a mutex, call the function with supplied argument - when it is acquired. If the mutex is already locked, place - function and argument in the queue.""" - if self.testandset(): - function(argument) - else: - self.queue.append((function, argument)) + def lock(self, function, argument): + """Lock a mutex, call the function with supplied argument + when it is acquired. If the mutex is already locked, place + function and argument in the queue.""" + if self.testandset(): + function(argument) + else: + self.queue.append((function, argument)) - def unlock(self): - """Unlock a mutex. If the queue is not empty, call the next - function with its argument.""" - if self.queue: - function, argument = self.queue[0] - del self.queue[0] - function(argument) - else: - self.locked = 0 + def unlock(self): + """Unlock a mutex. If the queue is not empty, call the next + function with its argument.""" + if self.queue: + function, argument = self.queue[0] + del self.queue[0] + function(argument) + else: + self.locked = 0 |