]> git.cworth.org Git - sup/blob - lib/sup/suicide.rb
multiple concurrent process detection and resolution
[sup] / lib / sup / suicide.rb
1 require 'fileutils'
2 module Redwood
3
4 class SuicideException < StandardError; end
5
6 class SuicideManager
7   include Singleton
8
9   DELAY = 5
10
11   def initialize fn
12     @fn = fn
13     self.class.i_am_the_instance self
14   end
15
16   def start_thread
17     Redwood::reporting_thread do
18       while true
19         sleep DELAY
20         if File.exists? @fn
21           FileUtils.rm_rf @fn
22           raise SuicideException
23         end
24       end
25     end
26   end
27 end
28
29 end