summaryrefslogtreecommitdiff
path: root/prelude.rb
diff options
context:
space:
mode:
Diffstat (limited to 'prelude.rb')
-rw-r--r--prelude.rb18
1 files changed, 13 insertions, 5 deletions
diff --git a/prelude.rb b/prelude.rb
index 1d084df..40fca6a 100644
--- a/prelude.rb
+++ b/prelude.rb
@@ -1,7 +1,9 @@
-
-# Mutex
-
class Mutex
+ # call-seq:
+ # mutex.synchronize { ... }
+ #
+ # Obtains a lock, runs the block, and releases the lock when the
+ # block completes. See the example under Mutex.
def synchronize
self.lock
begin
@@ -12,10 +14,16 @@ class Mutex
end
end
-# Thread
-
class Thread
+ # :nodoc:
MUTEX_FOR_THREAD_EXCLUSIVE = Mutex.new
+
+ # call-seq:
+ # Thread.exclusive { block } => obj
+ #
+ # Wraps a block in Thread.critical, restoring the original value
+ # upon exit from the critical section, and returns the value of the
+ # block.
def self.exclusive
MUTEX_FOR_THREAD_EXCLUSIVE.synchronize{
yield