about summary refs log tree commit homepage
path: root/lib/mutex_fix.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mutex_fix.rb')
-rw-r--r--lib/mutex_fix.rb34
1 files changed, 0 insertions, 34 deletions
diff --git a/lib/mutex_fix.rb b/lib/mutex_fix.rb
deleted file mode 100644
index a844401..0000000
--- a/lib/mutex_fix.rb
+++ /dev/null
@@ -1,34 +0,0 @@
-require 'thread'
-
-# monkey patch Mutex so it does not leak memory.
-class Mutex
-
-  def lock
-    while (Thread.critical = true; @locked)
-      @waiting.unshift Thread.current
-      Thread.stop
-    end
-    @locked = true
-    Thread.critical = false
-    self
-  end
-  
-  def unlock
-    return unless @locked
-    Thread.critical = true
-    @locked = false
-    begin
-      t = @waiting.pop
-      t.wakeup if t
-    rescue ThreadError
-      retry
-    end
-    Thread.critical = false
-    begin
-      t.run if t
-    rescue ThreadError
-    end
-    self
-  end
-  
-end \ No newline at end of file