diff --git a/lib/solid_queue/processes/base.rb b/lib/solid_queue/processes/base.rb index 6069a90d..8eec3ceb 100644 --- a/lib/solid_queue/processes/base.rb +++ b/lib/solid_queue/processes/base.rb @@ -4,7 +4,8 @@ module SolidQueue module Processes class Base include Callbacks # Defines callbacks needed by other concerns - include AppExecutor, Registrable, Interruptible, Procline + include AppExecutor, Registrable, Procline + prepend Interruptible attr_reader :name diff --git a/lib/solid_queue/processes/interruptible.rb b/lib/solid_queue/processes/interruptible.rb index 67173aeb..c83ba144 100644 --- a/lib/solid_queue/processes/interruptible.rb +++ b/lib/solid_queue/processes/interruptible.rb @@ -2,6 +2,13 @@ module SolidQueue::Processes module Interruptible + attr_reader :self_pipe + + def initialize(...) + super + @self_pipe = create_self_pipe + end + def wake_up interrupt end @@ -25,10 +32,6 @@ def interruptible_sleep(time) end # Self-pipe for signal-handling (http://cr.yp.to/docs/selfpipe.html) - def self_pipe - @self_pipe ||= create_self_pipe - end - def create_self_pipe reader, writer = IO.pipe { reader: reader, writer: writer }