lib/dispatch-rider/subscriber.rb in dispatch-rider-0.2.4 vs lib/dispatch-rider/subscriber.rb in dispatch-rider-0.2.5
- old
+ new
@@ -28,14 +28,19 @@
@demultiplexer ||= DispatchRider::Demultiplexer.new(queue, dispatcher, error_handler)
self
end
def process
- interuption_count = 0
+ Signal.trap("QUIT") { demultiplexer.stop } # signal number: 3
+ Signal.trap("TERM") { demultiplexer.stop } # signal number: 15
+
+ # user interuption
+ already_interupted = false
Signal.trap("INT") do
- interuption_count += 1
- interuption_count < 2 ? demultiplexer.stop : exit(0)
+ already_interupted ? exit(0) : demultiplexer.stop
+ already_interupted = true
end
+
demultiplexer.start
end
end
end