fiber_space 0.1.1 → 0.1.2

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
  SHA256:
3
- metadata.gz: abe3d0bb4dc3359f6888ed84d53c579e0bf4d1e8049e5ec140a29adb664b3b9a
4
- data.tar.gz: f5cf577cbc73510e640991e333de0d51c81a2019997a655188b4055d4f7c1bfc
3
+ metadata.gz: 5ddfae833e07213b8ff682c8f0639a2709a03c514beac6d4de8dfa20233e720e
4
+ data.tar.gz: 849a4c12e0ee774b446ba8e292a25647a2f6d23575a75e0aecbf666c11bf1e75
5
5
  SHA512:
6
- metadata.gz: f0f463ae5c6319fdfbfd7964ed2d93573d8de4e6d6b1a625ab59faea7badb9db831c87918518e1221ca94ede9fb07f4e259bcdcb42c45924a920ca544c002133
7
- data.tar.gz: 148606be51d318644a6e1c18d8121e7a9b85805cea2892b5d9ca08b1a9cdfb1ab19cbcf6048111dd6e020969d9fefc21988b30f792c9fa1de5cd1aa5d007fe2c
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.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
@@ -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