sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit e754b18523675adeafb89fe2adfe702647ff615e
parent 1fa957d9508456be4cac1815e0d985dd1cda3b2b
Author: William Morgan <wmorgan-sup@masanjin.net>
Date:   Sun, 30 Dec 2007 10:59:49 -0800

added FinishLine object to util.rb (currently unused)

Diffstat:
M lib/sup/util.rb | 13 +++++++++++++
1 file changed, 13 insertions(+), 0 deletions(-)
diff --git a/lib/sup/util.rb b/lib/sup/util.rb
@@ -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