timeout_after (SystemTimer)

        # File lib/system_timer.rb, line 43
    43:     def timeout_after(seconds)
    44:       new_timer = nil                                      # just for scope
    45:       @mutex.synchronize do
    46:         new_timer = timer_pool.add_timer seconds
    47:         timer_interval = timer_pool.next_trigger_interval_in_seconds
    48:         debug "==== Install Timer ==== at #{Time.now.to_i}, next interval: #{timer_interval}"
    49:         if timer_pool.first_timer?
    50:           install_first_timer_and_save_original_configuration timer_interval
    51:         else
    52:           install_next_timer timer_interval
    53:         end
    54:      end
    55:       return yield
    56:     ensure
    57:       @mutex.synchronize do
    58:         debug "==== Cleanup Timer ==== at #{Time.now.to_i}, #{new_timer} "
    59:         timer_pool.cancel new_timer
    60:         timer_pool.log_registered_timers if debug_enabled?
    61:         next_interval = timer_pool.next_trigger_interval_in_seconds
    62:         debug "Cleanup Timer : next interval #{next_interval.inspect} "
    63:         if next_interval
    64:           install_next_timer next_interval
    65:         else
    66:           restore_original_configuration
    67:         end
    68:       end
    69:     end