Method: PerfectQueue::TaskMonitor#kill_task

Defined in:
lib/perfectqueue/task_monitor.rb

#kill_task(reason) ⇒ Object



74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/perfectqueue/task_monitor.rb', line 74

def kill_task(reason)
  @mutex.synchronize {
    if task = @task
      begin
        task.runner.kill(reason)  # may recursive lock
      rescue
        @log.error "failed to kill task: #{$!.class}: #{$!}"
        $!.backtrace.each {|bt| @log.warn "\t#{bt}" }
        raise # force exit
      end
    end
  }
end