nonnative 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/nonnative/process.rb +30 -4
- data/lib/nonnative/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '06810bfb7f808b9a8d29a48a83f3b6d65d62d7319708961176ac4d12ec8b7f1e'
|
4
|
+
data.tar.gz: 4822cdaa7d9fc73ed9bdd56721eed722d782dc0656dcdd83503b6bb9eb626d72
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f78bb13f595d29a1156635e56673e8cb37c2a6c32160d7ed92bc846d80203bd4249da3a37dfeebb0f5c3fbc60cbd4d87b952bc3c02df1f59dd3efa8351ec4a4
|
7
|
+
data.tar.gz: f3f42321dbc3b520ef40965a043fdb55c8a4cd7116eeeb7199319138efea9008481607c41c47809b785ed688d091a1b55277fd84bfec3876327c6d32fb4e2930
|
data/Gemfile.lock
CHANGED
data/lib/nonnative/process.rb
CHANGED
@@ -16,7 +16,7 @@ module Nonnative
|
|
16
16
|
|
17
17
|
def stop
|
18
18
|
::Process.kill('SIGHUP', child_pid)
|
19
|
-
return
|
19
|
+
return if port_closed?
|
20
20
|
|
21
21
|
logger.error('Process has stopped though did respond in time', pid: child_pid)
|
22
22
|
end
|
@@ -26,15 +26,41 @@ module Nonnative
|
|
26
26
|
attr_reader :configuration, :logger, :child_pid
|
27
27
|
|
28
28
|
def port_open?
|
29
|
-
|
30
|
-
|
29
|
+
timeout do
|
30
|
+
open_socket
|
31
31
|
true
|
32
32
|
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
|
33
|
-
|
33
|
+
sleep_interval
|
34
|
+
retry
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def port_closed?
|
39
|
+
timeout do
|
40
|
+
open_socket
|
41
|
+
raise Nonnative::Error
|
42
|
+
rescue Nonnative::Error
|
43
|
+
sleep_interval
|
34
44
|
retry
|
45
|
+
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
|
46
|
+
true
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def timeout
|
51
|
+
Timeout.timeout(configuration.timeout) do
|
52
|
+
yield
|
35
53
|
end
|
36
54
|
rescue Timeout::Error
|
37
55
|
false
|
38
56
|
end
|
57
|
+
|
58
|
+
def open_socket
|
59
|
+
TCPSocket.new('127.0.0.1', configuration.port).close
|
60
|
+
end
|
61
|
+
|
62
|
+
def sleep_interval
|
63
|
+
sleep 0.01
|
64
|
+
end
|
39
65
|
end
|
40
66
|
end
|
data/lib/nonnative/version.rb
CHANGED