Skip to content

Commit 411ea4f

Browse files
committed
Improved signal handling.
1 parent 1b1ff07 commit 411ea4f

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

lib/async/container/controller.rb

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -205,13 +205,13 @@ def run
205205
end
206206
end
207207
end
208-
rescue Interrupt
209-
self.stop
210-
rescue Terminate
211-
self.stop(false)
212-
ensure
213-
self.stop(false)
214208
end
209+
rescue Interrupt
210+
self.stop
211+
rescue Terminate
212+
self.stop(false)
213+
ensure
214+
self.stop(false)
215215
end
216216

217217
private def with_signal_handlers
@@ -233,7 +233,7 @@ def run
233233
::Thread.current.raise(Hangup)
234234
end
235235

236-
::Thread.handle_interrupt(SignalException => :on_blocking) do
236+
::Thread.handle_interrupt(SignalException => :never) do
237237
yield
238238
end
239239
ensure

lib/async/container/group.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,7 @@ def wait_for_children(duration = nil)
150150
end
151151
end
152152

153+
# Wait for a child process to exit OR a signal to be received.
153154
def select(duration)
154155
::Thread.handle_interrupt(SignalException => :immediate) do
155156
readable, _, _ = ::IO.select(@running.keys, nil, nil, duration)

0 commit comments

Comments
 (0)