cangrejo 0.0.7 → 0.0.8

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: 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