open4 1.3.3 → 1.3.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/open4.rb +20 -20
- data/open4.gemspec +3 -3
- data/rakefile +1 -1
- data/test/{support → lib}/test_case.rb +1 -1
- data/test/pfork4_test.rb +1 -1
- data/test/popen4_test.rb +2 -2
- data/test/popen4ext_test.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZTUyNzE3MzczYmM1N2M5ZTQ0MWY0ZTkxMGM2NDcwODQzZWU3YjBkZg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDU2NWRlNGIxZjg5OGZmYjA5OGZhNDhhMTBiZDI2NTEyYzgxMTc5ZQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ZDJjMzYwZjA5OGY5ODI2MDA3YzY5MmVkZjNjYjYzYTQyMjIzNmRjNzk3NDZi
|
10
|
+
NjRiMDExNjZjZDBkMWM5MWY0ZTlmNTYxNDRlODQ5NTNjMjk3YzcyNTYzYzU0
|
11
|
+
ZGIxYTNiZjc0MjdkY2JkZmNkYWIxYWY1MDlmY2RmYTdmZTUyZDk=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MzkxZDc2ODhjMjk4ZDEwMzM0YjIxYzEyYThiYTg3YmRlOTljYmRiOGUzMGY2
|
14
|
+
NTU0NmM4OTg2OTRlNDYwODMzMmU5ODA5OTkzNmYzMTgxYmIzY2ZlNGQ1NzE4
|
15
|
+
ZmY3ZDNlZmRmYzRiYmE2MGM0MDgxYjJhYWZkZTZhM2Q4ZmIyMzM=
|
data/lib/open4.rb
CHANGED
@@ -4,7 +4,7 @@ require 'timeout'
|
|
4
4
|
require 'thread'
|
5
5
|
|
6
6
|
module Open4
|
7
|
-
VERSION = '1.3.
|
7
|
+
VERSION = '1.3.4'
|
8
8
|
def Open4.version() VERSION end
|
9
9
|
|
10
10
|
def Open4.description
|
@@ -183,9 +183,9 @@ module Open4
|
|
183
183
|
|
184
184
|
begin
|
185
185
|
@argv.each do |a, b|
|
186
|
-
@threads << Thread.new(*a) do |*
|
186
|
+
@threads << Thread.new(*a) do |*_a|
|
187
187
|
begin
|
188
|
-
b[*
|
188
|
+
b[*_a]
|
189
189
|
ensure
|
190
190
|
killall rescue nil if $!
|
191
191
|
@done.push Thread.current
|
@@ -214,9 +214,9 @@ module Open4
|
|
214
214
|
|
215
215
|
def new_thread *a, &b
|
216
216
|
cur = Thread.current
|
217
|
-
Thread.new(*a) do |*
|
217
|
+
Thread.new(*a) do |*_a|
|
218
218
|
begin
|
219
|
-
b[*
|
219
|
+
b[*_a]
|
220
220
|
rescue Exception => e
|
221
221
|
cur.raise e
|
222
222
|
end
|
@@ -229,8 +229,8 @@ module Open4
|
|
229
229
|
keys, default, _ = args
|
230
230
|
catch(:opt) do
|
231
231
|
[keys].flatten.each do |key|
|
232
|
-
[key, key.to_s, key.to_s.intern].each do |
|
233
|
-
throw :opt, opts[
|
232
|
+
[key, key.to_s, key.to_s.intern].each do |_key|
|
233
|
+
throw :opt, opts[_key] if opts.has_key?(_key)
|
234
234
|
end
|
235
235
|
end
|
236
236
|
default
|
@@ -259,19 +259,19 @@ module Open4
|
|
259
259
|
q = Queue.new
|
260
260
|
th = nil
|
261
261
|
|
262
|
-
timer_set = lambda do |
|
263
|
-
th = new_thread{ to(
|
262
|
+
timer_set = lambda do |_t|
|
263
|
+
th = new_thread{ to(_t){ q.pop } }
|
264
264
|
end
|
265
265
|
|
266
|
-
timer_cancel = lambda do |
|
266
|
+
timer_cancel = lambda do |_t|
|
267
267
|
th.kill if th rescue nil
|
268
268
|
end
|
269
269
|
|
270
270
|
timer_set[t]
|
271
271
|
begin
|
272
|
-
src.each do |
|
272
|
+
src.each do |_buf|
|
273
273
|
timer_cancel[t]
|
274
|
-
send_dst[
|
274
|
+
send_dst[_buf]
|
275
275
|
timer_set[t]
|
276
276
|
end
|
277
277
|
ensure
|
@@ -342,17 +342,17 @@ module Open4
|
|
342
342
|
|
343
343
|
te = ThreadEnsemble.new c
|
344
344
|
|
345
|
-
te.add_thread(i, stdin) do |
|
346
|
-
relay
|
347
|
-
|
345
|
+
te.add_thread(i, stdin) do |_i, _stdin|
|
346
|
+
relay _stdin, _i, stdin_timeout
|
347
|
+
_i.close rescue nil
|
348
348
|
end
|
349
349
|
|
350
|
-
te.add_thread(o, stdout) do |
|
351
|
-
relay
|
350
|
+
te.add_thread(o, stdout) do |_o, _stdout|
|
351
|
+
relay _o, _stdout, stdout_timeout
|
352
352
|
end
|
353
353
|
|
354
|
-
te.add_thread(e, stderr) do |
|
355
|
-
relay e,
|
354
|
+
te.add_thread(e, stderr) do |_o, _stderr| # HACK: I think this is a bug
|
355
|
+
relay e, _stderr, stderr_timeout
|
356
356
|
end
|
357
357
|
|
358
358
|
te.run
|
@@ -386,7 +386,7 @@ module Open4
|
|
386
386
|
else
|
387
387
|
argv.push opts
|
388
388
|
end
|
389
|
-
thread = Thread.new(arg, argv){|
|
389
|
+
thread = Thread.new(arg, argv){|_arg, _argv| spawn _arg, *_argv}
|
390
390
|
sc = class << thread; self; end
|
391
391
|
sc.module_eval {
|
392
392
|
define_method(:pid){ @pid ||= q.pop }
|
data/open4.gemspec
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
Gem::Specification::new do |spec|
|
5
5
|
spec.name = "open4"
|
6
|
-
spec.version = "1.3.
|
6
|
+
spec.version = "1.3.4"
|
7
7
|
spec.platform = Gem::Platform::RUBY
|
8
8
|
spec.summary = "open4"
|
9
9
|
spec.description = "open child process with handles on pid, stdin, stdout, and stderr: manage child processes and their io handles easily."
|
@@ -28,11 +28,11 @@ Gem::Specification::new do |spec|
|
|
28
28
|
"samples/stdin_timeout.rb",
|
29
29
|
"samples/timeout.rb",
|
30
30
|
"test",
|
31
|
+
"test/lib",
|
32
|
+
"test/lib/test_case.rb",
|
31
33
|
"test/pfork4_test.rb",
|
32
34
|
"test/popen4_test.rb",
|
33
35
|
"test/popen4ext_test.rb",
|
34
|
-
"test/support",
|
35
|
-
"test/support/test_case.rb",
|
36
36
|
"white_box",
|
37
37
|
"white_box/leak.rb"]
|
38
38
|
|
data/rakefile
CHANGED
@@ -32,7 +32,7 @@ def run_tests!(which = nil)
|
|
32
32
|
|
33
33
|
test_rbs.each_with_index do |test_rb, index|
|
34
34
|
testno = index + 1
|
35
|
-
command = "#{ This.ruby } -w -I ./lib -I ./test/lib #{ test_rb }"
|
35
|
+
command = "#{ This.ruby } -rubygems -w -I ./lib -I ./test/lib #{ test_rb }"
|
36
36
|
|
37
37
|
puts
|
38
38
|
say(div, :color => :cyan, :bold => true)
|
data/test/pfork4_test.rb
CHANGED
@@ -51,7 +51,7 @@ class PFork4Test < TestCase
|
|
51
51
|
fun = lambda { $stdout.write Process.pid }
|
52
52
|
cid_in_block = nil
|
53
53
|
cid_in_fun = nil
|
54
|
-
|
54
|
+
pfork4(fun) do |cid, _, stdout, _|
|
55
55
|
cid_in_block = cid
|
56
56
|
cid_in_fun = stdout.read.to_i
|
57
57
|
end
|
data/test/popen4_test.rb
CHANGED
@@ -8,7 +8,7 @@ class POpen4Test < TestCase
|
|
8
8
|
|
9
9
|
def test_unknown_command_propagates_exception
|
10
10
|
err = assert_raises(*UNKNOWN_CMD_ERRORS) { popen4 UNKNOWN_CMD }
|
11
|
-
assert_match
|
11
|
+
assert_match(/#{UNKNOWN_CMD}/, err.to_s) if on_mri?
|
12
12
|
end
|
13
13
|
|
14
14
|
def test_exception_propagation_avoids_zombie_child_process
|
@@ -31,7 +31,7 @@ class POpen4Test < TestCase
|
|
31
31
|
cmd = %{ruby -e "STDOUT.print Process.pid"}
|
32
32
|
cid_in_block = nil
|
33
33
|
cid_in_fun = nil
|
34
|
-
|
34
|
+
popen4(cmd) do |cid, _, stdout, _|
|
35
35
|
cid_in_block = cid
|
36
36
|
cid_in_fun = stdout.read.to_i
|
37
37
|
end
|
data/test/popen4ext_test.rb
CHANGED
@@ -9,7 +9,7 @@ class POpen4Test < TestCase
|
|
9
9
|
|
10
10
|
def test_unknown_command_propagates_exception
|
11
11
|
err = assert_raises(*UNKNOWN_CMD_ERRORS) { popen4ext true, UNKNOWN_CMD }
|
12
|
-
assert_match
|
12
|
+
assert_match(/#{UNKNOWN_CMD}/, err.to_s) if on_mri?
|
13
13
|
end
|
14
14
|
|
15
15
|
def test_exception_propagation_avoids_zombie_child_process
|
@@ -32,7 +32,7 @@ class POpen4Test < TestCase
|
|
32
32
|
cmd = %{ruby -e "STDOUT.print Process.pid"}
|
33
33
|
cid_in_block = nil
|
34
34
|
cid_in_fun = nil
|
35
|
-
|
35
|
+
popen4ext(true, cmd) do |cid, _, stdout, _|
|
36
36
|
cid_in_block = cid
|
37
37
|
cid_in_fun = stdout.read.to_i
|
38
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: open4
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ara T. Howard
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-15 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: ! 'open child process with handles on pid, stdin, stdout, and stderr:
|
14
14
|
manage child processes and their io handles easily.'
|
@@ -32,10 +32,10 @@ files:
|
|
32
32
|
- samples/spawn.rb
|
33
33
|
- samples/stdin_timeout.rb
|
34
34
|
- samples/timeout.rb
|
35
|
+
- test/lib/test_case.rb
|
35
36
|
- test/pfork4_test.rb
|
36
37
|
- test/popen4_test.rb
|
37
38
|
- test/popen4ext_test.rb
|
38
|
-
- test/support/test_case.rb
|
39
39
|
- white_box/leak.rb
|
40
40
|
homepage: https://github.com/ahoward/open4
|
41
41
|
licenses:
|