]> git.cworth.org Git - sup/commitdiff
added FinishLine object to util.rb (currently unused)
authorWilliam Morgan <wmorgan-sup@masanjin.net>
Sun, 30 Dec 2007 18:59:49 +0000 (10:59 -0800)
committerWilliam Morgan <wmorgan-sup@masanjin.net>
Sun, 30 Dec 2007 18:59:49 +0000 (10:59 -0800)
lib/sup/util.rb

index 2164e858c7721daa43e7eadc50a8cc3e9c69320b..47bc1c21402a6c8a06f6f54d46c6e0440caa47f8 100644 (file)
@@ -1,3 +1,4 @@
+require 'thread'
 require 'lockfile'
 require 'mime/types'
 require 'pathname'
@@ -600,3 +601,15 @@ class OrderedHash < Hash
   def each; @keys.each { |k| yield k, self[k] } end
 end
 
+## easy thread-safe class for determining who's the "winner" in a race (i.e.
+## first person to hit the finish line
+class FinishLine
+  def initialize
+    @m = Mutex.new
+    @over = false
+  end
+
+  def winner?
+    @m.synchronize { !@over && @over = true }
+  end
+end