celluloid 0.12.0 → 0.13.0
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.
- data/README.md +36 -23
- data/lib/celluloid/actor.rb +74 -47
- data/lib/celluloid/autostart.rb +16 -0
- data/lib/celluloid/calls.rb +52 -52
- data/lib/celluloid/condition.rb +70 -0
- data/lib/celluloid/core_ext.rb +1 -1
- data/lib/celluloid/cpu_counter.rb +7 -1
- data/lib/celluloid/fsm.rb +49 -16
- data/lib/celluloid/future.rb +5 -2
- data/lib/celluloid/internal_pool.rb +62 -44
- data/lib/celluloid/legacy.rb +46 -0
- data/lib/celluloid/links.rb +0 -5
- data/lib/celluloid/logger.rb +14 -4
- data/lib/celluloid/logging/incident.rb +21 -0
- data/lib/celluloid/logging/incident_logger.rb +129 -0
- data/lib/celluloid/logging/incident_reporter.rb +48 -0
- data/lib/celluloid/logging/log_event.rb +20 -0
- data/lib/celluloid/logging/ring_buffer.rb +65 -0
- data/lib/celluloid/logging.rb +5 -0
- data/lib/celluloid/mailbox.rb +2 -1
- data/lib/celluloid/method.rb +5 -0
- data/lib/celluloid/pool_manager.rb +21 -8
- data/lib/celluloid/proxies/actor_proxy.rb +11 -11
- data/lib/celluloid/proxies/async_proxy.rb +5 -1
- data/lib/celluloid/responses.rb +8 -6
- data/lib/celluloid/stack_dump.rb +94 -0
- data/lib/celluloid/supervision_group.rb +5 -3
- data/lib/celluloid/system_events.rb +11 -0
- data/lib/celluloid/tasks/task_fiber.rb +17 -9
- data/lib/celluloid/tasks/task_thread.rb +24 -14
- data/lib/celluloid/tasks.rb +59 -0
- data/lib/celluloid/thread_handle.rb +10 -1
- data/lib/celluloid/version.rb +1 -1
- data/lib/celluloid.rb +146 -87
- data/spec/support/actor_examples.rb +242 -114
- data/spec/support/example_actor_class.rb +17 -5
- data/spec/support/task_examples.rb +11 -2
- metadata +58 -14
- data/lib/celluloid/boot.rb +0 -9
- data/lib/celluloid/task.rb +0 -22
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: celluloid
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.13.0
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -9,11 +9,11 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2013-03-19 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: timers
|
|
16
|
-
requirement:
|
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
|
17
17
|
none: false
|
|
18
18
|
requirements:
|
|
19
19
|
- - ! '>='
|
|
@@ -21,10 +21,15 @@ dependencies:
|
|
|
21
21
|
version: 1.0.0
|
|
22
22
|
type: :runtime
|
|
23
23
|
prerelease: false
|
|
24
|
-
version_requirements:
|
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
+
none: false
|
|
26
|
+
requirements:
|
|
27
|
+
- - ! '>='
|
|
28
|
+
- !ruby/object:Gem::Version
|
|
29
|
+
version: 1.0.0
|
|
25
30
|
- !ruby/object:Gem::Dependency
|
|
26
31
|
name: rake
|
|
27
|
-
requirement:
|
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
|
28
33
|
none: false
|
|
29
34
|
requirements:
|
|
30
35
|
- - ! '>='
|
|
@@ -32,10 +37,15 @@ dependencies:
|
|
|
32
37
|
version: '0'
|
|
33
38
|
type: :development
|
|
34
39
|
prerelease: false
|
|
35
|
-
version_requirements:
|
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
+
none: false
|
|
42
|
+
requirements:
|
|
43
|
+
- - ! '>='
|
|
44
|
+
- !ruby/object:Gem::Version
|
|
45
|
+
version: '0'
|
|
36
46
|
- !ruby/object:Gem::Dependency
|
|
37
47
|
name: rspec
|
|
38
|
-
requirement:
|
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
|
39
49
|
none: false
|
|
40
50
|
requirements:
|
|
41
51
|
- - ! '>='
|
|
@@ -43,10 +53,31 @@ dependencies:
|
|
|
43
53
|
version: '0'
|
|
44
54
|
type: :development
|
|
45
55
|
prerelease: false
|
|
46
|
-
version_requirements:
|
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
+
none: false
|
|
58
|
+
requirements:
|
|
59
|
+
- - ! '>='
|
|
60
|
+
- !ruby/object:Gem::Version
|
|
61
|
+
version: '0'
|
|
62
|
+
- !ruby/object:Gem::Dependency
|
|
63
|
+
name: guard-rspec
|
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
|
65
|
+
none: false
|
|
66
|
+
requirements:
|
|
67
|
+
- - ! '>='
|
|
68
|
+
- !ruby/object:Gem::Version
|
|
69
|
+
version: '0'
|
|
70
|
+
type: :development
|
|
71
|
+
prerelease: false
|
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
+
none: false
|
|
74
|
+
requirements:
|
|
75
|
+
- - ! '>='
|
|
76
|
+
- !ruby/object:Gem::Version
|
|
77
|
+
version: '0'
|
|
47
78
|
- !ruby/object:Gem::Dependency
|
|
48
79
|
name: benchmark_suite
|
|
49
|
-
requirement:
|
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
|
50
81
|
none: false
|
|
51
82
|
requirements:
|
|
52
83
|
- - ! '>='
|
|
@@ -54,7 +85,12 @@ dependencies:
|
|
|
54
85
|
version: '0'
|
|
55
86
|
type: :development
|
|
56
87
|
prerelease: false
|
|
57
|
-
version_requirements:
|
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
+
none: false
|
|
90
|
+
requirements:
|
|
91
|
+
- - ! '>='
|
|
92
|
+
- !ruby/object:Gem::Version
|
|
93
|
+
version: '0'
|
|
58
94
|
description: Celluloid enables people to build concurrent programs out of concurrent
|
|
59
95
|
objects just as easily as they build sequential programs out of sequential objects
|
|
60
96
|
email:
|
|
@@ -65,16 +101,24 @@ extra_rdoc_files: []
|
|
|
65
101
|
files:
|
|
66
102
|
- README.md
|
|
67
103
|
- lib/celluloid/actor.rb
|
|
68
|
-
- lib/celluloid/
|
|
104
|
+
- lib/celluloid/autostart.rb
|
|
69
105
|
- lib/celluloid/calls.rb
|
|
106
|
+
- lib/celluloid/condition.rb
|
|
70
107
|
- lib/celluloid/core_ext.rb
|
|
71
108
|
- lib/celluloid/cpu_counter.rb
|
|
72
109
|
- lib/celluloid/fiber.rb
|
|
73
110
|
- lib/celluloid/fsm.rb
|
|
74
111
|
- lib/celluloid/future.rb
|
|
75
112
|
- lib/celluloid/internal_pool.rb
|
|
113
|
+
- lib/celluloid/legacy.rb
|
|
76
114
|
- lib/celluloid/links.rb
|
|
77
115
|
- lib/celluloid/logger.rb
|
|
116
|
+
- lib/celluloid/logging/incident.rb
|
|
117
|
+
- lib/celluloid/logging/incident_logger.rb
|
|
118
|
+
- lib/celluloid/logging/incident_reporter.rb
|
|
119
|
+
- lib/celluloid/logging/log_event.rb
|
|
120
|
+
- lib/celluloid/logging/ring_buffer.rb
|
|
121
|
+
- lib/celluloid/logging.rb
|
|
78
122
|
- lib/celluloid/mailbox.rb
|
|
79
123
|
- lib/celluloid/method.rb
|
|
80
124
|
- lib/celluloid/notifications.rb
|
|
@@ -88,12 +132,13 @@ files:
|
|
|
88
132
|
- lib/celluloid/responses.rb
|
|
89
133
|
- lib/celluloid/rspec.rb
|
|
90
134
|
- lib/celluloid/signals.rb
|
|
135
|
+
- lib/celluloid/stack_dump.rb
|
|
91
136
|
- lib/celluloid/supervision_group.rb
|
|
92
137
|
- lib/celluloid/supervisor.rb
|
|
93
138
|
- lib/celluloid/system_events.rb
|
|
94
|
-
- lib/celluloid/task.rb
|
|
95
139
|
- lib/celluloid/tasks/task_fiber.rb
|
|
96
140
|
- lib/celluloid/tasks/task_thread.rb
|
|
141
|
+
- lib/celluloid/tasks.rb
|
|
97
142
|
- lib/celluloid/thread_handle.rb
|
|
98
143
|
- lib/celluloid/uuid.rb
|
|
99
144
|
- lib/celluloid/version.rb
|
|
@@ -123,9 +168,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
123
168
|
version: 1.3.6
|
|
124
169
|
requirements: []
|
|
125
170
|
rubyforge_project:
|
|
126
|
-
rubygems_version: 1.8.
|
|
171
|
+
rubygems_version: 1.8.23
|
|
127
172
|
signing_key:
|
|
128
173
|
specification_version: 3
|
|
129
174
|
summary: Actor-based concurrent object framework for Ruby
|
|
130
175
|
test_files: []
|
|
131
|
-
has_rdoc:
|
data/lib/celluloid/boot.rb
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
# Things to run after Celluloid is fully loaded
|
|
2
|
-
|
|
3
|
-
# Configure default systemwide settings
|
|
4
|
-
Celluloid.logger = Logger.new STDERR
|
|
5
|
-
Celluloid.task_class = Celluloid::TaskFiber
|
|
6
|
-
|
|
7
|
-
# Launch the notifications fanout actor
|
|
8
|
-
# FIXME: We should set up the supervision hierarchy here
|
|
9
|
-
Celluloid::Notifications::Fanout.supervise_as :notifications_fanout
|
data/lib/celluloid/task.rb
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
require 'celluloid/tasks/task_fiber'
|
|
2
|
-
require 'celluloid/tasks/task_thread'
|
|
3
|
-
|
|
4
|
-
module Celluloid
|
|
5
|
-
# Trying to resume a dead task
|
|
6
|
-
class DeadTaskError < StandardError; end
|
|
7
|
-
|
|
8
|
-
# Tasks are interruptable/resumable execution contexts used to run methods
|
|
9
|
-
module Task
|
|
10
|
-
class TerminatedError < StandardError; end # kill a running task
|
|
11
|
-
|
|
12
|
-
# Obtain the current task
|
|
13
|
-
def self.current
|
|
14
|
-
Thread.current[:task] or raise "not within a task context"
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# Suspend the running task, deferring to the scheduler
|
|
18
|
-
def self.suspend(status)
|
|
19
|
-
Task.current.suspend(status)
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|