rexec 1.6.1 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 37a6927e5affd75981f84d8e7a728d78146bc3e7
4
- data.tar.gz: 0918b351565eeefe516e75512e93eb2a84af45ba
3
+ metadata.gz: 83c8f85d6f0fe5127d00d90d12abd59c946b2370
4
+ data.tar.gz: a509c0b459ffdcef895ce8905e7f36a93d6fd7c3
5
5
  SHA512:
6
- metadata.gz: b8303a4be5df0e6584b78b79ee0ec1d50260fc7a6150d0e3625f9a83bebcc96b221b8c3e5e615c44993195fa26fabac8cd6d105b46988c07be448d83eade5f2a
7
- data.tar.gz: f43d7a09bd0d34fd6a6d82da32e38e25d4c5aa922f2118800dec78304199a75cf654f49acc427a4df5cb1e6c2426c0b96281408ef134735d4398fab84a3cd057
6
+ metadata.gz: b886554d41c8dfdac084351cc8990b3f54d5483cf387bc18881a663398a630829fddaa16d77bc3ac462636e832720ddc159536308b500abfa6dc7bdc2c7346da
7
+ data.tar.gz: 96d6ff057aeb6c5c525f0b9323ef7d54fab5f736b2324220dd240e6b3752b02a01b04d6a6bbef5ce83f277be0d1696052cfcc0063c96a475bc1aa0649d32e128
@@ -1,8 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - "1.8.7"
4
- - "1.9.2"
5
3
  - "1.9.3"
6
4
  - "2.0"
7
- - rbx-18mode
8
5
  - rbx-19mode
6
+ - rbx-20mode
@@ -153,6 +153,8 @@ module RExec
153
153
 
154
154
  # The main function to stop the daemon
155
155
  def self.shutdown
156
+ # Interrupt all children processes, preferably to stop them so that they are not left behind.
157
+ Process.kill(0, :INT)
156
158
  end
157
159
  end
158
160
  end
@@ -89,32 +89,11 @@ module RExec
89
89
  $stderr.sync = true
90
90
 
91
91
  begin
92
- error = nil
92
+ daemon.run
93
93
 
94
- main = Thread.new do
95
- begin
96
- daemon.run
97
- rescue
98
- error = $!
99
- end
100
- end
101
-
102
94
  trap("INT") do
103
- begin
104
- daemon.shutdown
105
- main.exit
106
- rescue
107
- error = $!
108
- end
109
- end
110
-
111
- trap("TERM") do
112
- exit!
95
+ daemon.shutdown
113
96
  end
114
-
115
- main.join
116
-
117
- raise error if error
118
97
  rescue
119
98
  $stderr.puts "=== Daemon Exception Backtrace @ #{Time.now.to_s} ==="
120
99
  $stderr.puts "#{$!.class}: #{$!.message}"
@@ -184,8 +163,8 @@ module RExec
184
163
  return
185
164
  end
186
165
 
187
- pid = ProcessFile.recall(daemon)
188
- Process.kill("INT", pid)
166
+ pgid = -Process.getpgid(pid)
167
+ Process.kill("INT", pgid)
189
168
  sleep 0.1
190
169
 
191
170
  sleep 1 if ProcessFile.running(daemon)
@@ -196,8 +175,8 @@ module RExec
196
175
  while ProcessFile.running(daemon) and attempts > 0
197
176
  sig = (attempts >= 2) ? "KILL" : "TERM"
198
177
 
199
- puts "Sending #{sig} to pid #{pid}...".color(:red)
200
- Process.kill(sig, pid)
178
+ puts "Sending #{sig} to process group #{pgid}...".color(:red)
179
+ Process.kill(sig, pgid)
201
180
 
202
181
  attempts -= 1
203
182
  sleep 1
@@ -19,5 +19,5 @@
19
19
  # THE SOFTWARE.
20
20
 
21
21
  module RExec
22
- VERSION = "1.6.1"
22
+ VERSION = "1.6.2"
23
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rexec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams