lib/dispatch-rider/subscriber.rb in dispatch-rider-0.2.6 vs lib/dispatch-rider/subscriber.rb in dispatch-rider-0.2.7

- old
+ new

@@ -28,19 +28,40 @@ @demultiplexer ||= DispatchRider::Demultiplexer.new(queue, dispatcher, error_handler) self end def process - Signal.trap("QUIT") { demultiplexer.stop } # signal number: 3 - Signal.trap("TERM") { demultiplexer.stop } # signal number: 15 + Signal.trap("QUIT") do + # signal number: 3 + logger.info "Received SIGQUIT, stopping demultiplexer" + demultiplexer.stop + end - # user interuption - already_interupted = false + Signal.trap("TERM") do + # signal number: 15 + logger.info "Received SIGTERM, stopping demultiplexer" + demultiplexer.stop + end + + # user interruption + already_interrupted = false Signal.trap("INT") do - already_interupted ? exit(0) : demultiplexer.stop - already_interupted = true + if already_interrupted + logger.info "Received SIGINT second time, aborting" + exit(0) + else + logger.info "Received SIGINT first time, stopping demultiplexer" + demultiplexer.stop + end + already_interrupted = true end demultiplexer.start + end + + private + + def logger + DispatchRider.config.logger end end end