fiber_space 0.1.1 → 0.1.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 +4 -4
- data/lib/fiber_space.rb +2 -1
- metadata +1 -2
- data/lib/fiber_space/wrapper.rb +0 -77
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ddfae833e07213b8ff682c8f0639a2709a03c514beac6d4de8dfa20233e720e
|
4
|
+
data.tar.gz: 849a4c12e0ee774b446ba8e292a25647a2f6d23575a75e0aecbf666c11bf1e75
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f7259faef883f01c7a0617a518c562af5d1df55fe4b7d06ec2a6f53ee7698e63cbc85543508ca94155e616cab4b18c5e53ec3390b5100294168439323f78b7d
|
7
|
+
data.tar.gz: b74ace09cb4fc929f1259f02f52b5ddef6da0c85559f2d637857029adcd0465443ed7396e32c3e6be3eaafc99aaf03d95809c7bdf7b9607e9ce41ca3720fe3ea
|
data/lib/fiber_space.rb
CHANGED
@@ -15,9 +15,10 @@ module FiberSpace
|
|
15
15
|
|
16
16
|
autoload :FiberContainer, 'fiber_space/container'
|
17
17
|
autoload :FiberChain, 'fiber_space/chain'
|
18
|
-
autoload :ProcessWrapper, 'fiber_space/wrapper'
|
19
18
|
end
|
20
19
|
|
20
|
+
include FiberSpace
|
21
|
+
|
21
22
|
# Copyright (c) 2022, Patrick W.
|
22
23
|
# All rights reserved.
|
23
24
|
#
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fiber_space
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Patrick W.
|
@@ -39,7 +39,6 @@ files:
|
|
39
39
|
- lib/fiber_space.rb
|
40
40
|
- lib/fiber_space/chain.rb
|
41
41
|
- lib/fiber_space/container.rb
|
42
|
-
- lib/fiber_space/wrapper.rb
|
43
42
|
homepage: https://git.repos.pw/Sickday/fiber_space
|
44
43
|
licenses:
|
45
44
|
- BSD-3-Clause
|
data/lib/fiber_space/wrapper.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
module FiberSpace
|
2
|
-
|
3
|
-
# A Container for fiber processes.
|
4
|
-
class ProcessWrapper
|
5
|
-
|
6
|
-
attr :properties
|
7
|
-
|
8
|
-
attr :stack
|
9
|
-
|
10
|
-
def initialize(options = {})
|
11
|
-
@properties = {
|
12
|
-
max_fibers: options[:max_fibers] || 0xff
|
13
|
-
}.freeze
|
14
|
-
|
15
|
-
setup_root_trapping
|
16
|
-
setup_process
|
17
|
-
end
|
18
|
-
|
19
|
-
def shutdown
|
20
|
-
@worker_thread.kill
|
21
|
-
sleep(1) while @worker_thread.alive?
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
def setup_root_trapping
|
27
|
-
Signal.trap('INT') do
|
28
|
-
puts 'Caught INT signal!'
|
29
|
-
Process.kill('INT', @worker_process)
|
30
|
-
Process.wait(@worker_process)
|
31
|
-
rescue StandardError => e
|
32
|
-
puts 'An error occurred during shutdown!'
|
33
|
-
puts e.backtrace&.join("\n")
|
34
|
-
end
|
35
|
-
|
36
|
-
Signal.trap('TERM') do
|
37
|
-
puts 'Caught TERM signal.'
|
38
|
-
begin
|
39
|
-
Process.kill('TERM', @worker_process)
|
40
|
-
Process.wait(@worker_process)
|
41
|
-
rescue StandardError => e
|
42
|
-
puts 'An error occurred during shutdown!'
|
43
|
-
puts e.backtrace&.join("\n")
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
def setup_child_trapping
|
49
|
-
Signal.trap('INT') do
|
50
|
-
puts 'Child caught INT!!'
|
51
|
-
ensure
|
52
|
-
shutdown
|
53
|
-
end
|
54
|
-
|
55
|
-
Signal.trap('TERM') do
|
56
|
-
puts 'Child caught TERM!!'
|
57
|
-
ensure
|
58
|
-
shutdown
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
def setup_process
|
63
|
-
@worker_process = Process.spawn do
|
64
|
-
setup_child_trapping
|
65
|
-
setup_worker
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
def setup_worker
|
70
|
-
@worker_thread = Thread.new do
|
71
|
-
loop do
|
72
|
-
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|