File tree Expand file tree Collapse file tree 7 files changed +43
-45
lines changed Expand file tree Collapse file tree 7 files changed +43
-45
lines changed Original file line number Diff line number Diff line change 7
7
require "solid_queue/app_executor"
8
8
require "solid_queue/processes/supervised"
9
9
require "solid_queue/processes/registrable"
10
- require "solid_queue/interruptible"
11
- require "solid_queue/pidfile"
12
- require "solid_queue/procline"
10
+ require "solid_queue/processes/ interruptible"
11
+ require "solid_queue/processes/ pidfile"
12
+ require "solid_queue/processes/ procline"
13
13
require "solid_queue/processes/base"
14
14
require "solid_queue/processes/runnable"
15
15
require "solid_queue/signals"
Load Diff This file was deleted.
Original file line number Diff line number Diff line change
1
+ # frozen_string_literal: true
2
+
3
+ module SolidQueue ::Processes
4
+ module Interruptible
5
+ def wake_up
6
+ interrupt
7
+ end
8
+
9
+ private
10
+ SELF_PIPE_BLOCK_SIZE = 11
11
+
12
+ def interrupt
13
+ self_pipe [ :writer ] . write_nonblock ( "." )
14
+ rescue Errno ::EAGAIN , Errno ::EINTR
15
+ # Ignore writes that would block and retry
16
+ # if another signal arrived while writing
17
+ retry
18
+ end
19
+
20
+ def interruptible_sleep ( time )
21
+ if time > 0 && self_pipe [ :reader ] . wait_readable ( time )
22
+ loop { self_pipe [ :reader ] . read_nonblock ( SELF_PIPE_BLOCK_SIZE ) }
23
+ end
24
+ rescue Errno ::EAGAIN , Errno ::EINTR
25
+ end
26
+
27
+ # Self-pipe for signal-handling (http://cr.yp.to/docs/selfpipe.html)
28
+ def self_pipe
29
+ @self_pipe ||= create_self_pipe
30
+ end
31
+
32
+ def create_self_pipe
33
+ reader , writer = IO . pipe
34
+ { reader : reader , writer : writer }
35
+ end
36
+ end
37
+ end
Original file line number Diff line number Diff line change 1
1
# frozen_string_literal: true
2
2
3
- module SolidQueue
3
+ module SolidQueue :: Processes
4
4
class Pidfile
5
5
def initialize ( path )
6
6
@path = path
Original file line number Diff line number Diff line change 1
1
# frozen_string_literal: true
2
2
3
- module SolidQueue
3
+ module SolidQueue :: Processes
4
4
module Procline
5
5
# Sets the procline ($0)
6
6
# solid-queue-supervisor(0.1.0): <string>
Original file line number Diff line number Diff line change @@ -7,10 +7,6 @@ class ImmediateTerminationRequested < Interrupt; end
7
7
module Signals
8
8
extend ActiveSupport ::Concern
9
9
10
- included do
11
- include Interruptible
12
- end
13
-
14
10
private
15
11
SIGNALS = %i[ QUIT INT TERM ]
16
12
Original file line number Diff line number Diff line change @@ -59,7 +59,7 @@ def sync_std_streams
59
59
60
60
def setup_pidfile
61
61
@pidfile = if SolidQueue . supervisor_pidfile
62
- Pidfile . new ( SolidQueue . supervisor_pidfile ) . tap ( &:setup )
62
+ Processes :: Pidfile . new ( SolidQueue . supervisor_pidfile ) . tap ( &:setup )
63
63
end
64
64
end
65
65
You can’t perform that action at this time.
0 commit comments