Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 2847

Show
Ignore:
Timestamp:
11/02/05 13:21:22 (4 years ago)
Author:
minam
Message:

Make fcgi handler respond to TERM signals with an explicit exit

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/railties/CHANGELOG

    r2846 r2847  
    11*SVN* 
     2 
     3* Make fcgi handler respond to TERM signals with an explicit exit [Jamis Buck] 
    24 
    35* Added demonstration of fixture use to the test case generated by the model generator [DHH] 
  • trunk/railties/lib/fcgi_handler.rb

    r2564 r2847  
    77  SIGNALS = { 
    88    'HUP'  => :reload, 
    9     'TERM' => :exit
     9    'TERM' => :exit_now
    1010    'USR1' => :exit, 
    1111    'USR2' => :restart 
     
    118118    end 
    119119 
     120    def exit_now_handler(signal) 
     121      dispatcher_log :info, "asked to terminate immediately" 
     122      exit 
     123    end 
     124 
    120125    def exit_handler(signal) 
    121126      dispatcher_log :info, "asked to terminate ASAP" 
  • trunk/railties/test/fcgi_dispatcher_test.rb

    r2555 r2847  
    2929 
    3030  def restore! 
     31    @reloaded = true 
     32  end 
     33   
     34  def reload! 
    3135    @reloaded = true 
    3236  end 
     
    6367    @handler.thread.join 
    6468    assert_nil @handler.exit_code 
    65     assert_nil @handler.when_ready 
     69    assert_equal :reload, @handler.when_ready 
    6670    assert @handler.reloaded 
    6771  end 
     
    7579    assert_nil @handler.exit_code 
    7680    assert_equal :reload, @handler.when_ready 
     81    assert @handler.reloaded 
    7782  end 
    7883 
     
    95100    assert_nil @handler.exit_code 
    96101    assert_equal :exit, @handler.when_ready 
     102  end 
     103   
     104  def test_interrupted_via_TERM 
     105    Dispatcher.time_to_sleep = 1 
     106    @handler.thread = Thread.new { @handler.process! } 
     107    sleep 0.1 # let the thread get started 
     108    @handler.send_signal("TERM") 
     109    @handler.thread.join 
     110    assert_equal 0, @handler.exit_code 
     111    assert_nil @handler.when_ready 
    97112  end 
    98113