cangrejo 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e1552f977b329faa5f23355229c7c2ef0b85e40d
4
- data.tar.gz: 5de51c9b1ba59ae7865e6623ad2857989725bd1b
3
+ metadata.gz: 9abef7ab7ea42eed000aebdc1935b7e615c6bd26
4
+ data.tar.gz: c4cbbfc74975a149136a57edb9d888073008cd97
5
5
  SHA512:
6
- metadata.gz: c1bd5f81ad96ef9590e40d69574a5b48cd16b8dcc1a5e0255ab627b8b515d44ee613957a1d9988e63bd1530ce9be925a1c055fcacabafd42af02339cac3e1c65
7
- data.tar.gz: 17d427f19cdabf44bc96e28de729089a0d38bda71f8dfa9af83ffe124bd0079c3475f35a7434409301a84371b1cfca1586850c91b4c72e179228797b3c3ca610
6
+ metadata.gz: 920d3b2b113c1c6d69354462e74493bfe941af3cd4b4438fda0129db07409d8d5cbc00383d39a5aab9a4b71dfbf1f41d8bed40b76e9b6da15bd7ab8893c30bc9
7
+ data.tar.gz: 4b3c05243deb477f1458aa7434f1210f7efd2da5d30ead60db3429b3344f95782c53b7a370914352bb354c7fc145a757174acc7e4909697465ea0d03f6f4d856
@@ -1,7 +1,11 @@
1
+ require 'timeout'
2
+
1
3
  module Cangrejo
2
4
  module Support
3
5
  class Launcher
4
6
 
7
+ KILL_TIMEOUT = 5.0
8
+
5
9
  def initialize(_path, _options=nil)
6
10
  @path = _path
7
11
  @options = _options || []
@@ -20,10 +24,7 @@ module Cangrejo
20
24
  end
21
25
 
22
26
  def kill
23
- unless @pid.nil?
24
- Process.kill 'INT', @pid
25
- Process.wait @pid, Process::WNOHANG
26
- end
27
+ safe_kill @pid unless @pid.nil?
27
28
  end
28
29
 
29
30
  private
@@ -39,6 +40,19 @@ module Cangrejo
39
40
  def wait_for_socket
40
41
  sleep 0.1 while not File.exist? @socket_file
41
42
  end
43
+
44
+ def safe_kill _pid
45
+ begin
46
+ Timeout.timeout(KILL_TIMEOUT) do
47
+ Process.kill 'INT', _pid
48
+ Process.wait _pid
49
+ end
50
+ rescue Timeout::Error
51
+ Process.kill 9, _pid
52
+ Process.wait _pid # prevent zombies!
53
+ end
54
+ end
55
+
42
56
  end
43
57
  end
44
58
  end
@@ -1,3 +1,3 @@
1
1
  module Cangrejo
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cangrejo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ignacio Baixas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-25 00:00:00.000000000 Z
11
+ date: 2015-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client