Skip to content

Commit bc211e7

Browse files
authored
fix TSTP -> CONT signal handling (#382)
1 parent 311177a commit bc211e7

File tree

1 file changed

+25
-16
lines changed

1 file changed

+25
-16
lines changed

lib/outboxer/publisher.rb

Lines changed: 25 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ def terminating?
99
@status == Status::TERMINATING
1010
end
1111

12+
def publishing?
13+
@status == Status::PUBLISHING
14+
end
15+
1216
# Parses command line arguments to configure the publisher.
1317
# @param args [Array<String>] The arguments passed via the command line.
1418
# @return [Hash] The parsed options.
@@ -549,28 +553,33 @@ def create_publisher_thread(id:, index:,
549553
# Thread.current.report_on_exception = true
550554

551555
while !terminating?
552-
begin
553-
published_message = Message.publish(logger: logger) do |message|
554-
block.call({ id: id }, message)
555-
end
556-
rescue StandardError => error
557-
logger.error(
558-
"#{error.class}: #{error.message}\n" \
559-
"#{error.backtrace.join("\n")}")
560-
561-
Publisher.sleep(
562-
poll_interval,
563-
tick_interval: tick_interval,
564-
process: process,
565-
kernel: kernel)
566-
else
567-
if published_message.nil?
556+
if publishing?
557+
begin
558+
published_message = Message.publish(logger: logger) do |message|
559+
block.call({ id: id }, message)
560+
end
561+
rescue StandardError => error
562+
logger.error(
563+
"#{error.class}: #{error.message}\n" \
564+
"#{error.backtrace.join("\n")}")
565+
568566
Publisher.sleep(
569567
poll_interval,
570568
tick_interval: tick_interval,
571569
process: process,
572570
kernel: kernel)
571+
else
572+
if published_message.nil?
573+
Publisher.sleep(
574+
poll_interval,
575+
tick_interval: tick_interval,
576+
process: process,
577+
kernel: kernel)
578+
end
573579
end
580+
else
581+
Publisher.sleep(tick_interval, tick_interval: tick_interval,
582+
process: process, kernel: kernel)
574583
end
575584
end
576585
rescue ::Exception => error

0 commit comments

Comments
 (0)