celluloid 0.18.0.pre → 0.18.0.pre2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGES.md +114 -39
- data/CONDUCT.md +13 -0
- data/CONTRIBUTING.md +39 -0
- data/README.md +59 -55
- data/architecture.md +120 -0
- data/examples/basic_usage.rb +1 -1
- data/examples/configurations.rb +78 -0
- data/examples/futures.rb +1 -1
- data/examples/ring.rb +5 -4
- data/examples/simple_pmap.rb +1 -1
- data/examples/stack.rb +2 -2
- data/examples/supervisors_and_registry.rb +82 -0
- data/examples/timers.rb +1 -1
- data/lib/celluloid.rb +72 -47
- data/lib/celluloid/actor.rb +27 -17
- data/lib/celluloid/actor/system.rb +13 -29
- data/lib/celluloid/autostart.rb +5 -5
- data/lib/celluloid/backported.rb +6 -2
- data/lib/celluloid/call/async.rb +2 -0
- data/lib/celluloid/call/sync.rb +10 -3
- data/lib/celluloid/calls.rb +5 -12
- data/lib/celluloid/cell.rb +5 -9
- data/lib/celluloid/condition.rb +3 -3
- data/lib/celluloid/core_ext.rb +0 -2
- data/lib/celluloid/current.rb +3 -1
- data/lib/celluloid/debug.rb +3 -0
- data/lib/celluloid/exceptions.rb +2 -2
- data/lib/celluloid/future.rb +7 -9
- data/lib/celluloid/group.rb +12 -8
- data/lib/celluloid/group/pool.rb +1 -3
- data/lib/celluloid/group/spawner.rb +2 -6
- data/lib/celluloid/internals/call_chain.rb +15 -0
- data/lib/celluloid/internals/cpu_counter.rb +62 -0
- data/lib/celluloid/internals/handlers.rb +42 -0
- data/lib/celluloid/internals/links.rb +38 -0
- data/lib/celluloid/internals/logger.rb +104 -0
- data/lib/celluloid/internals/method.rb +34 -0
- data/lib/celluloid/internals/properties.rb +32 -0
- data/lib/celluloid/internals/receivers.rb +64 -0
- data/lib/celluloid/internals/registry.rb +102 -0
- data/lib/celluloid/internals/responses.rb +46 -0
- data/lib/celluloid/internals/signals.rb +24 -0
- data/lib/celluloid/internals/stack.rb +74 -0
- data/lib/celluloid/internals/stack/dump.rb +12 -0
- data/lib/celluloid/internals/stack/states.rb +72 -0
- data/lib/celluloid/internals/stack/summary.rb +12 -0
- data/lib/celluloid/internals/task_set.rb +51 -0
- data/lib/celluloid/internals/thread_handle.rb +52 -0
- data/lib/celluloid/internals/uuid.rb +40 -0
- data/lib/celluloid/logging/incident.rb +21 -0
- data/lib/celluloid/logging/incident_logger.rb +147 -0
- data/lib/celluloid/logging/incident_reporter.rb +49 -0
- data/lib/celluloid/logging/log_event.rb +20 -0
- data/lib/celluloid/logging/ring_buffer.rb +64 -0
- data/lib/celluloid/mailbox.rb +22 -9
- data/lib/celluloid/mailbox/evented.rb +13 -5
- data/lib/celluloid/managed.rb +6 -3
- data/lib/celluloid/notifications.rb +95 -0
- data/lib/celluloid/pool.rb +6 -0
- data/lib/celluloid/probe.rb +81 -0
- data/lib/celluloid/proxy/abstract.rb +9 -9
- data/lib/celluloid/proxy/async.rb +1 -1
- data/lib/celluloid/proxy/block.rb +2 -2
- data/lib/celluloid/proxy/cell.rb +1 -1
- data/lib/celluloid/proxy/future.rb +2 -4
- data/lib/celluloid/proxy/sync.rb +1 -3
- data/lib/celluloid/rspec.rb +22 -33
- data/lib/celluloid/supervision.rb +17 -0
- data/lib/celluloid/supervision/configuration.rb +169 -0
- data/lib/celluloid/supervision/configuration/injections.rb +8 -0
- data/lib/celluloid/supervision/configuration/instance.rb +113 -0
- data/lib/celluloid/supervision/constants.rb +123 -0
- data/lib/celluloid/supervision/container.rb +144 -0
- data/lib/celluloid/supervision/container/behavior.rb +89 -0
- data/lib/celluloid/supervision/container/behavior/pool.rb +71 -0
- data/lib/celluloid/supervision/container/behavior/tree.rb +23 -0
- data/lib/celluloid/supervision/container/injections.rb +8 -0
- data/lib/celluloid/supervision/container/instance.rb +116 -0
- data/lib/celluloid/supervision/container/pool.rb +210 -0
- data/{culture/rubocop/perf.yml → lib/celluloid/supervision/container/tree.rb} +0 -0
- data/lib/celluloid/supervision/deprecate.rb +9 -0
- data/lib/celluloid/supervision/deprecate/supervise.rb +105 -0
- data/lib/celluloid/supervision/deprecate/validation.rb +54 -0
- data/lib/celluloid/supervision/service.rb +27 -0
- data/lib/celluloid/supervision/supervise.rb +34 -0
- data/lib/celluloid/supervision/validation.rb +40 -0
- data/lib/celluloid/supervision/version.rb +5 -0
- data/lib/celluloid/system_events.rb +11 -6
- data/lib/celluloid/task.rb +25 -12
- data/lib/celluloid/task/fibered.rb +2 -0
- data/lib/celluloid/task/threaded.rb +3 -3
- data/lib/celluloid/test.rb +5 -2
- data/lib/celluloid/thread.rb +0 -2
- data/lib/celluloid/version.rb +1 -1
- data/spec/celluloid/block_spec.rb +29 -32
- data/spec/celluloid/calls_spec.rb +5 -15
- data/spec/celluloid/future_spec.rb +2 -2
- data/spec/celluloid/internals/cpu_counter_spec.rb +129 -0
- data/spec/celluloid/internals/links_spec.rb +43 -0
- data/spec/celluloid/internals/properties_spec.rb +40 -0
- data/spec/celluloid/internals/registry_spec.rb +62 -0
- data/spec/celluloid/internals/stack/dump_spec.rb +4 -0
- data/spec/celluloid/internals/stack/summary_spec.rb +4 -0
- data/spec/celluloid/internals/thread_handle_spec.rb +60 -0
- data/spec/celluloid/internals/uuid_spec.rb +9 -0
- data/spec/celluloid/logging/ring_buffer_spec.rb +36 -0
- data/spec/celluloid/mailbox/evented_spec.rb +11 -22
- data/spec/celluloid/misc/leak_spec.rb +3 -4
- data/spec/celluloid/notifications_spec.rb +140 -0
- data/spec/celluloid/probe_spec.rb +102 -0
- data/spec/celluloid/proxy_spec.rb +30 -30
- data/spec/celluloid/supervision/behavior_spec.rb +74 -0
- data/spec/celluloid/supervision/configuration_spec.rb +181 -0
- data/spec/celluloid/supervision/container_spec.rb +72 -0
- data/spec/celluloid/supervision/instance_spec.rb +13 -0
- data/spec/celluloid/supervision/root_spec.rb +28 -0
- data/spec/celluloid/supervision/supervisor_spec.rb +93 -0
- data/spec/celluloid/task/fibered_spec.rb +1 -3
- data/spec/celluloid/task/threaded_spec.rb +1 -3
- data/spec/shared/actor_examples.rb +58 -33
- data/spec/shared/group_examples.rb +2 -2
- data/spec/shared/mailbox_examples.rb +1 -1
- data/spec/shared/stack_examples.rb +87 -0
- data/spec/shared/task_examples.rb +2 -3
- data/spec/spec_helper.rb +2 -4
- data/spec/support/configure_rspec.rb +2 -3
- data/spec/support/coverage.rb +2 -4
- data/spec/support/crash_checking.rb +2 -2
- data/spec/support/examples/actor_class.rb +3 -8
- data/spec/support/examples/call_class.rb +2 -2
- data/spec/support/examples/container_class.rb +35 -0
- data/spec/support/examples/evented_mailbox_class.rb +1 -2
- data/spec/support/examples/stack_classes.rb +58 -0
- data/spec/support/examples/stack_methods.rb +23 -0
- data/spec/support/examples/subordinate_class.rb +19 -0
- data/spec/support/logging.rb +2 -34
- data/spec/support/loose_threads.rb +3 -16
- data/spec/support/reset_class_variables.rb +5 -1
- data/spec/support/stubbing.rb +1 -1
- metadata +91 -316
- data/culture/CONDUCT.md +0 -38
- data/culture/GSoC/1010-why_we_will_participate.md +0 -17
- data/culture/GSoC/1020-how_mentors_stay_engaged.md +0 -7
- data/culture/GSoC/1030-keeping_students_on_schedule.md +0 -9
- data/culture/GSoC/1040-getting_students_involved.md +0 -5
- data/culture/GSoC/1050-student_involvement_after.md +0 -5
- data/culture/GSoC/README.md +0 -16
- data/culture/Gemfile +0 -9
- data/culture/LICENSE.txt +0 -22
- data/culture/README.md +0 -22
- data/culture/Rakefile +0 -5
- data/culture/SYNC.md +0 -70
- data/culture/celluloid-culture.gemspec +0 -18
- data/culture/gems/README.md +0 -39
- data/culture/gems/dependencies.yml +0 -93
- data/culture/gems/loader.rb +0 -101
- data/culture/rubocop/README.md +0 -38
- data/culture/rubocop/lint.yml +0 -8
- data/culture/rubocop/metrics.yml +0 -15
- data/culture/rubocop/rubocop.yml +0 -5
- data/culture/rubocop/style.yml +0 -61
- data/culture/spec/gems_spec.rb +0 -2
- data/culture/spec/spec_helper.rb +0 -0
- data/culture/spec/sync_spec.rb +0 -2
- data/culture/sync.rb +0 -56
- data/culture/tasks/rspec.rake +0 -5
- data/culture/tasks/rubocop.rake +0 -2
- data/lib/celluloid/actor/manager.rb +0 -7
- data/lib/celluloid/deprecate.rb +0 -34
- data/lib/celluloid/fiber.rb +0 -32
- data/lib/celluloid/notices.rb +0 -15
- data/spec/deprecate/actor_system_spec.rb +0 -72
- data/spec/deprecate/block_spec.rb +0 -52
- data/spec/deprecate/calls_spec.rb +0 -39
- data/spec/deprecate/evented_mailbox_spec.rb +0 -34
- data/spec/deprecate/future_spec.rb +0 -32
- data/spec/deprecate/internal_pool_spec.rb +0 -4
- data/spec/support/env.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 901d303444b94a61e2b4faaf1e957ae442acd5ae2ae0864f9c0fd7af7dbfbe46
|
4
|
+
data.tar.gz: ff7fc82458f6b591a74fbc59d329db9082f195f466c9be7be12dec1c8073d621
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71f12fd99271e598bf0e125b1ce44f5b1bc420b34dfabdabb64e80f38e8736c54a5295f6d9ecfcfbdcfde78a10bc79388dba4a18a0b7873415ed86050cc76420
|
7
|
+
data.tar.gz: 834996dba23ffde88d9970cd86bb0e5b6975f7658867d3f0f1d2eaba88ab1ebf0b45cc5847a63b11af0df390cab680be94aeb25d0bb5c791f6e997bd172dadf6
|
data/CHANGES.md
CHANGED
@@ -1,8 +1,10 @@
|
|
1
|
-
## 0.18.0.
|
1
|
+
## 0.18.0.pre2 (Final release TBD)
|
2
2
|
|
3
|
-
*
|
3
|
+
* TODO (before 0.18.0 final): release notes
|
4
4
|
|
5
|
-
## 0.17.3 (2016-01-18)
|
5
|
+
## [0.17.3] (2016-01-18)
|
6
|
+
|
7
|
+
[0.17.3]: https://github.com/celluloid/celluloid/compare/v0.17.2...v0.17.3
|
6
8
|
|
7
9
|
* [#701](https://github.com/celluloid/celluloid/pull/701)
|
8
10
|
Conditions in loose threads loop does not take into account the difference between
|
@@ -37,22 +39,30 @@
|
|
37
39
|
* [#666](https://github.com/celluloid/celluloid/pull/666)
|
38
40
|
Don't catch IOError.
|
39
41
|
|
40
|
-
## 0.17.2 (2015-09-30)
|
42
|
+
## [0.17.2] (2015-09-30)
|
43
|
+
|
44
|
+
[0.17.2]: https://github.com/celluloid/celluloid/compare/v0.17.1.2...v0.17.2
|
41
45
|
|
42
46
|
* Revamped test suite, using shared RSpec configuration layer provided by Celluloid itself.
|
43
47
|
* Updated gem dependencies provided by Celluloid::Sync... extraneous gems removed, or marked as development dependencies.
|
44
48
|
* Clean up deprecation notes.
|
45
49
|
|
46
|
-
## 0.17.1.2 (2015-08-21)
|
50
|
+
## [0.17.1.2] (2015-08-21)
|
51
|
+
|
52
|
+
[0.17.1.2]: https://github.com/celluloid/celluloid/compare/v0.17.1.1...v0.17.1.2
|
47
53
|
|
48
54
|
* Fixes to posted markdown content.
|
49
55
|
* Pull in new gem dependencies.
|
50
56
|
|
51
|
-
## 0.17.1.1 (2015-08-07)
|
57
|
+
## [0.17.1.1] (2015-08-07)
|
58
|
+
|
59
|
+
[0.17.1.1]: https://github.com/celluloid/celluloid/compare/v0.17.1...v0.17.1.1
|
52
60
|
|
53
61
|
* Revert "no task to suspend" code from #232.
|
54
62
|
|
55
|
-
## 0.17.1 (2015-08-06)
|
63
|
+
## [0.17.1] (2015-08-06)
|
64
|
+
|
65
|
+
[0.17.1]: https://github.com/celluloid/celluloid/compare/v0.17.0...v0.17.1
|
56
66
|
|
57
67
|
* `Celluloid::ActorSystem` moved to `Celluloid::Actor::System`, and from `celluloid/actor_system.rb` to `celluloid/actor/system.rb`
|
58
68
|
* Added extensible API for defining new SystemEvents, and having them handled... without everyone changing `Actor#handle_system_event`.
|
@@ -60,7 +70,9 @@
|
|
60
70
|
* General round-up of all "errors" emitted throughout Celluloid, to either be derived from `Celluloid::Error` or `Celluloid::Interruption`.
|
61
71
|
* Added ability to pass a block to `Condition#wait` which runs a `{ |value| ... }` type block if present, once the value is obtained by waiting.
|
62
72
|
|
63
|
-
## 0.17.0 (2015-07-04)
|
73
|
+
## [0.17.0] (2015-07-04)
|
74
|
+
|
75
|
+
[0.17.0]: https://github.com/celluloid/celluloid/compare/v0.16.0...v0.17.0
|
64
76
|
|
65
77
|
* Fix $CELLULOID_TEST warnings
|
66
78
|
* Massive overhaul of test suite, end-to-end.
|
@@ -91,7 +103,9 @@
|
|
91
103
|
* Implement `Group::Manager` as base for future `Group::Unlocker` and other such systems traversing `ActorSystem#group` regularly.
|
92
104
|
* Reduce number of supervisors instantiated by `ActorSystem` by consolidating them down to `Service::Root` container instances.
|
93
105
|
|
94
|
-
## 0.16.0 (2014-09-04)
|
106
|
+
## [0.16.0] (2014-09-04)
|
107
|
+
|
108
|
+
[0.16.0]: https://github.com/celluloid/celluloid/compare/v0.15.2...v0.16.0
|
95
109
|
|
96
110
|
* Factor apart Celluloid::Cell (concurrent objects) from Celluloid::Actor
|
97
111
|
* Introduce Celluloid::ActorSystem as an abstraction around the backend
|
@@ -110,15 +124,21 @@
|
|
110
124
|
* Better thread names on JRuby for easier debugging
|
111
125
|
* Thread safety fixes to internal thread pool
|
112
126
|
|
113
|
-
## 0.15.2 (2013-10-06)
|
127
|
+
## [0.15.2] (2013-10-06)
|
128
|
+
|
129
|
+
[0.15.2]: https://github.com/celluloid/celluloid/compare/v0.15.1...v0.15.2
|
114
130
|
|
115
131
|
* require 'celluloid/test' for at_exit-free testing
|
116
132
|
|
117
|
-
## 0.15.1 (2013-09-06)
|
133
|
+
## [0.15.1] (2013-09-06)
|
134
|
+
|
135
|
+
[0.15.1]: https://github.com/celluloid/celluloid/compare/v0.15.0...v0.15.1
|
118
136
|
|
119
137
|
* Only raise on nested tasks if $CELLULOID_DEBUG is set
|
120
138
|
|
121
|
-
## 0.15.0 (2013-09-04)
|
139
|
+
## [0.15.0] (2013-09-04)
|
140
|
+
|
141
|
+
[0.15.0]: https://github.com/celluloid/celluloid/compare/v0.14.0...v0.15.0
|
122
142
|
|
123
143
|
* Remove legacy support for "bang"-method based async invocation
|
124
144
|
* Generic timeout support with Celluloid#timeout
|
@@ -134,7 +154,9 @@
|
|
134
154
|
* Reimplement signal system on top of Conditions
|
135
155
|
* Add metadata like the current method to Celluloid::StackDumps
|
136
156
|
|
137
|
-
## 0.14.0 (2013-05-07)
|
157
|
+
## [0.14.0] (2013-05-07)
|
158
|
+
|
159
|
+
[0.14.0]: https://github.com/celluloid/celluloid/compare/v0.13.0...v0.14.0
|
138
160
|
|
139
161
|
* Use a Thread-subclass for Celluloid
|
140
162
|
* Implement actor-local variables
|
@@ -149,7 +171,9 @@
|
|
149
171
|
* Execute blocks on the sender by default
|
150
172
|
* Fix CPU counter on windows
|
151
173
|
|
152
|
-
## 0.13.0
|
174
|
+
## [0.13.0]
|
175
|
+
|
176
|
+
[0.13.0]: https://github.com/celluloid/celluloid/compare/v0.12.4...v0.13.0
|
153
177
|
|
154
178
|
* API change: Require Celluloid with: require 'celluloid/autostart' to
|
155
179
|
automatically start support actors and configure at_exit handler which
|
@@ -164,7 +188,9 @@
|
|
164
188
|
* Celluloid#call_chain_id provides UUIDs for calls across actors
|
165
189
|
* Give all thread locals a :celluloid_* prefix
|
166
190
|
|
167
|
-
## 0.12.4
|
191
|
+
## [0.12.4]
|
192
|
+
|
193
|
+
[0.12.4]: https://github.com/celluloid/celluloid/compare/v0.12.3...v0.12.4
|
168
194
|
|
169
195
|
* Bugfix: Clear dead/crashed actors out of links
|
170
196
|
* Bugfix: Exclusive mode was broken
|
@@ -175,16 +201,23 @@
|
|
175
201
|
* Use #public_send to dispatch Celluloid methods
|
176
202
|
* #idle_size and #busy_size for Celluloid::PoolManager
|
177
203
|
|
178
|
-
## 0.12.3
|
204
|
+
## [0.12.3]
|
205
|
+
|
206
|
+
[0.12.3]: https://github.com/celluloid/celluloid/compare/v0.12.2...v0.12.3
|
207
|
+
|
179
208
|
|
180
209
|
* Bugfix: Ensure exclusive mode works correctly for per-method case
|
181
210
|
* Bugfix: Exit handlers were not being inherited correctly
|
182
211
|
|
183
|
-
## 0.12.2
|
212
|
+
## [0.12.2]
|
213
|
+
|
214
|
+
[0.12.2]: https://github.com/celluloid/celluloid/compare/v0.12.1...v0.12.2
|
184
215
|
|
185
216
|
* Disable IncidentReporter by default
|
186
217
|
|
187
|
-
## 0.12.1
|
218
|
+
## [0.12.1]
|
219
|
+
|
220
|
+
[0.12.1]: https://github.com/celluloid/celluloid/compare/v0.12.0...v0.12.1
|
188
221
|
|
189
222
|
* Fix bug in unsetting of exclusive mode
|
190
223
|
* New incident report system for providing better debugging reports
|
@@ -195,7 +228,9 @@
|
|
195
228
|
* Remove Celluloid#alive? as it cannot be called in any manner that will ever
|
196
229
|
return anything but true, rendering it useless
|
197
230
|
|
198
|
-
## 0.12.0
|
231
|
+
## [0.12.0]
|
232
|
+
|
233
|
+
[0.12.0]: https://github.com/celluloid/celluloid/compare/v0.11.1...v0.12.0
|
199
234
|
|
200
235
|
* Alternative async syntax: actor.async.method in lieu of actor.method!
|
201
236
|
Original syntax still available but will be removed in Celluloid 1.0
|
@@ -219,7 +254,9 @@
|
|
219
254
|
defined by use_mailbox. This is now fixed.
|
220
255
|
* `exclusive` class method without arguments makes the whole actor exclusive
|
221
256
|
|
222
|
-
## 0.11.1
|
257
|
+
## [0.11.1]
|
258
|
+
|
259
|
+
[0.11.1]: https://github.com/celluloid/celluloid/compare/v0.11.0...v0.11.1
|
223
260
|
|
224
261
|
* 'exclusive' class method marks methods as always exclusive and runs them
|
225
262
|
outside of a Fiber (useful if you need more stack than Fibers provide)
|
@@ -229,7 +266,9 @@
|
|
229
266
|
* Celluloid::Timers extracted into the timers gem, which Celluloid now
|
230
267
|
uses for its own timers
|
231
268
|
|
232
|
-
## 0.11.0
|
269
|
+
## [0.11.0]
|
270
|
+
|
271
|
+
[0.11.0]: https://github.com/celluloid/celluloid/compare/v0.10.0...v0.11.0
|
233
272
|
|
234
273
|
* Celluloid::Application constant permanently removed
|
235
274
|
* Celluloid::Pool removed in favor of Celluloid.pool
|
@@ -244,21 +283,27 @@
|
|
244
283
|
* abort can now accept a string instead of an exception object and will raise
|
245
284
|
RuntimeError in the caller's context
|
246
285
|
|
247
|
-
## 0.10.0
|
286
|
+
## [0.10.0]
|
287
|
+
|
288
|
+
[0.10.0]: https://github.com/celluloid/celluloid/compare/v0.9.1...v0.10.0
|
248
289
|
|
249
290
|
* Celluloid::Actor.current is now the de facto way to obtain the current actor
|
250
291
|
* #terminate now uses system messages, making termination take priority over
|
251
292
|
other pending methods
|
252
293
|
* #terminate! provides asynchronous termination
|
253
294
|
|
254
|
-
## 0.9.1
|
295
|
+
## [0.9.1]
|
296
|
+
|
297
|
+
[0.9.1]: https://github.com/celluloid/celluloid/compare/v0.9.0...v0.9.1
|
255
298
|
|
256
299
|
* Recurring timers with Celluloid#every(n) { ... }
|
257
300
|
* Obtain UUIDs with Celluloid.uuid
|
258
301
|
* Obtain the number of CPU cores available with Celluloid.cores
|
259
302
|
* Celluloid::Pool defaults to one actor per CPU core max by default
|
260
303
|
|
261
|
-
## 0.9.0
|
304
|
+
## [0.9.0]
|
305
|
+
|
306
|
+
[0.9.0]: https://github.com/celluloid/celluloid/compare/v0.8.0...v0.9.0
|
262
307
|
|
263
308
|
* Celluloid::Pool supervises pools of actors
|
264
309
|
* Graceful shutdown which calls #terminate on all actors
|
@@ -268,7 +313,9 @@
|
|
268
313
|
* Celluloid.exception_handler { |ex| ... } defines a callback for notifying
|
269
314
|
exceptions (for use with Airbrake, exception_notifier, etc.)
|
270
315
|
|
271
|
-
## 0.8.0
|
316
|
+
## [0.8.0]
|
317
|
+
|
318
|
+
[0.8.0]: https://github.com/celluloid/celluloid/compare/v0.7.2...v0.8.0
|
272
319
|
|
273
320
|
* Celluloid::Application is now Celluloid::Group
|
274
321
|
* Futures no longer use a thread unless created with a block
|
@@ -280,19 +327,25 @@
|
|
280
327
|
* Celluloid::FSMs are no longer actors themselves
|
281
328
|
* Benchmarks using benchmark_suite
|
282
329
|
|
283
|
-
## 0.7.2
|
330
|
+
## [0.7.2]
|
331
|
+
|
332
|
+
[0.7.2]: https://github.com/celluloid/celluloid/compare/v0.7.1...v0.7.2
|
284
333
|
|
285
334
|
* Workaround fiber problems on JRuby 1.6.5.1 in addition to 1.6.5
|
286
335
|
* Fix class displayed when inspecting dead actors
|
287
336
|
|
288
|
-
## 0.7.1
|
337
|
+
## [0.7.1]
|
338
|
+
|
339
|
+
[0.7.1]: https://github.com/celluloid/celluloid/compare/v0.7.0...v0.7.1
|
289
340
|
|
290
341
|
* More examples!
|
291
342
|
* Cancel all pending tasks when actors crash
|
292
343
|
* Log all errors that occur during signaling failures
|
293
344
|
* Work around thread-local issues on rbx (see 52325ecd)
|
294
345
|
|
295
|
-
## 0.7.0
|
346
|
+
## [0.7.0]
|
347
|
+
|
348
|
+
[0.7.0]: https://github.com/celluloid/celluloid/compare/v0.6.2...v0.7.0
|
296
349
|
|
297
350
|
* Celluloid::Task abstraction replaces Celluloid::Fiber
|
298
351
|
* Celluloid#tasks API to introspect on running tasks
|
@@ -307,13 +360,17 @@
|
|
307
360
|
* Celluloid.receive and Celluloid#receive now accept an optional timeout
|
308
361
|
* Celluloid::Mailbox#receive now accepts an optional timeout
|
309
362
|
|
310
|
-
## 0.6.2
|
363
|
+
## [0.6.2]
|
364
|
+
|
365
|
+
[0.6.2]: https://github.com/celluloid/celluloid/compare/v0.6.1...v0.6.2
|
311
366
|
|
312
367
|
* List all registered actors with Celluloid::Actor.registered
|
313
368
|
* All logging now handled through Celluloid::Logger
|
314
369
|
* Rescue DeadActorError in Celluloid::ActorProxy#inspect
|
315
370
|
|
316
|
-
## 0.6.1
|
371
|
+
## [0.6.1]
|
372
|
+
|
373
|
+
[0.6.1]: https://github.com/celluloid/celluloid/compare/v0.6.0...v0.6.1
|
317
374
|
|
318
375
|
* Celluloid#links obtains Celluloid::Links for a given actor
|
319
376
|
* The #class method is now proxied to actors
|
@@ -321,7 +378,9 @@
|
|
321
378
|
* Use Thread.mailbox instead of Thread.current.mailbox to obtain the mailbox
|
322
379
|
for the current thread
|
323
380
|
|
324
|
-
## 0.6.0
|
381
|
+
## [0.6.0]
|
382
|
+
|
383
|
+
[0.6.0]: https://github.com/celluloid/celluloid/compare/v0.5.0...v0.6.0
|
325
384
|
|
326
385
|
* Celluloid::Application classes for describing the structure of applications
|
327
386
|
built with Celluloid
|
@@ -335,7 +394,9 @@
|
|
335
394
|
* Add Celluloid.fiber and Celluloid.resume_fiber to allow extension APIs to
|
336
395
|
participate in the Celluloid fiber protocol
|
337
396
|
|
338
|
-
## 0.5.0
|
397
|
+
## [0.5.0]
|
398
|
+
|
399
|
+
[0.5.0]: https://github.com/celluloid/celluloid/compare/v0.4.0...v0.5.0
|
339
400
|
|
340
401
|
* "include Celluloid::Actor" no longer supported. Use "include Celluloid"
|
341
402
|
* New Celluloid::IO module for actors that multiplex IO operations
|
@@ -351,15 +412,21 @@
|
|
351
412
|
* Magically skip ahead a few version numbers to impart the magnitude of this
|
352
413
|
release. It's my versioning scheme and I can do what I wanna.
|
353
414
|
|
354
|
-
## 0.4.0
|
415
|
+
## [0.4.0]
|
416
|
+
|
417
|
+
[0.4.0]: https://github.com/celluloid/celluloid/compare/v0.3.0...v0.4.0
|
355
418
|
|
356
419
|
* This version was mysteriously lost to the sands of time
|
357
420
|
|
358
|
-
## 0.3.0
|
421
|
+
## [0.3.0]
|
422
|
+
|
423
|
+
[0.3.0]: https://github.com/celluloid/celluloid/compare/v0.2.2...v0.3.0
|
359
424
|
|
360
425
|
* This version was also mysteriously lost to the sands of time
|
361
426
|
|
362
|
-
## 0.2.2
|
427
|
+
## [0.2.2]
|
428
|
+
|
429
|
+
[0.2.2]: https://github.com/celluloid/celluloid/compare/v0.2.1...v0.2.2
|
363
430
|
|
364
431
|
* AbortErrors now reraise in caller scope and get a caller-focused backtrace
|
365
432
|
* Log failed async calls instead of just letting them fail silently
|
@@ -367,11 +434,15 @@
|
|
367
434
|
* Actors can now make async calls to themselves
|
368
435
|
* Resolve crashes that occur when sending responses to exited/dead callers
|
369
436
|
|
370
|
-
## 0.2.1
|
437
|
+
## [0.2.1]
|
438
|
+
|
439
|
+
[0.2.1]: https://github.com/celluloid/celluloid/compare/v0.2.0...v0.2.1
|
371
440
|
|
372
441
|
* Hack around a bug of an indeterminate cause (2baba3d2)
|
373
442
|
|
374
|
-
## 0.2.0
|
443
|
+
## [0.2.0]
|
444
|
+
|
445
|
+
[0.2.0]: https://github.com/celluloid/celluloid/compare/v0.1.0...v0.2.0
|
375
446
|
|
376
447
|
* Support for future method calls with MyActor#future
|
377
448
|
* Initial signaling support via MyActor#signal and MyActor#wait
|
@@ -380,7 +451,9 @@
|
|
380
451
|
* Add an underscore prefix to all of Celluloid's instance variables so they don't
|
381
452
|
clash with user-defined ones.
|
382
453
|
|
383
|
-
## 0.1.0
|
454
|
+
## [0.1.0]
|
455
|
+
|
456
|
+
[0.1.0]: https://github.com/celluloid/celluloid/compare/v0.0.3...v0.1.0
|
384
457
|
|
385
458
|
* Fiber-based reentrant actors. Requires Ruby 1.9
|
386
459
|
* MyActor.new (where MyActor includes Celluloid::Actor) is now identical to .spawn
|
@@ -390,7 +463,9 @@
|
|
390
463
|
* Synchronization now based on ConditionVariables instead of Celluloid::Waker
|
391
464
|
* Determine if you're in actor scope with Celluloid.actor?
|
392
465
|
|
393
|
-
## 0.0.3
|
466
|
+
## [0.0.3]
|
467
|
+
|
468
|
+
[0.0.3]: https://github.com/celluloid/celluloid/compare/v0.0.1...v0.0.3
|
394
469
|
|
395
470
|
* Remove self-referential dependency in gemspec
|
396
471
|
|
data/CONDUCT.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
# Contributor Code of Conduct
|
2
|
+
|
3
|
+
As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities.
|
4
|
+
|
5
|
+
We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion.
|
6
|
+
|
7
|
+
Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct.
|
8
|
+
|
9
|
+
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team.
|
10
|
+
|
11
|
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers.
|
12
|
+
|
13
|
+
This Code of Conduct is adapted from the [Contributor Covenant](http:contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
# Contribution Guidelines
|
2
|
+
|
3
|
+
If you are seeking support, or for discussions about Celluloid, you can use [the mailing list](http://groups.google.com/group/celluloid-ruby) or the IRC channel, #celluloid on freenode.
|
4
|
+
|
5
|
+
If you encounter an issue with Celluloid itself, you should go through the following checklist:
|
6
|
+
|
7
|
+
* Is this a known bug or are you falling into a common trap? Check the [Gotchas wiki page](https://github.com/celluloid/celluloid/wiki/Gotchas).
|
8
|
+
* Is there already an issue filed which looks like your issue? Check the [issue tracker](https://github.com/celluloid/celluloid/issues).
|
9
|
+
* Is the problem present in the latest released version of Celluloid? Upgrade and check!
|
10
|
+
* Is the problem present on the master branch of Celluloid? [Run pre-release](#running-pre-release-celluloid) from source control and check!
|
11
|
+
|
12
|
+
If you don't get anywhere with this checklist, please feel free to [file a bug report](#filing-a-bug-report).
|
13
|
+
|
14
|
+
## Running pre-release Celluloid
|
15
|
+
|
16
|
+
If you encounter a bug, it's entirely possible that it has already been fixed but not yet included in a released version. You can establish this by trying to run your application with a pre-release version of Celluloid direct from source control. You can do this by modifying your application's Gemfile as follows:
|
17
|
+
|
18
|
+
```ruby
|
19
|
+
gem 'celluloid', github: 'celluloid', submodules: true
|
20
|
+
```
|
21
|
+
|
22
|
+
If it is suggested to you that you try a different branch, add `branch: 'somebranch'`.
|
23
|
+
|
24
|
+
If the problem is resolved, feel free to voice your desire for a new release of Celluloid on IRC (`irc.freenode.net/#celluloid`).
|
25
|
+
|
26
|
+
If it persists, you should consider [filing a bug report](#filing-a-bug-report).
|
27
|
+
|
28
|
+
## Filing a bug report
|
29
|
+
|
30
|
+
* Bug reports should be filed on the [GitHub issue tracker](https://github.com/celluloid/celluloid/issues). Bug reports should contain the following things:
|
31
|
+
* A sensible subject that helps quickly identify the issue.
|
32
|
+
* Full steps to reproduce the issue, including minimal reproduction code. A minimal reproduction means only what is necessary to display the problem and nothing more. This is perhaps the most important thing, don't skip it!
|
33
|
+
* Output from a reproduction.
|
34
|
+
* Full references for version numbers (of Celluloid, dependencies, Ruby, Operating System, etc). One easy way to do this is to post your Gemfile.lock, though you will still need to tell us what version of Ruby is in use.
|
35
|
+
* See: [Triage Process](https://github.com/celluloid/celluloid/wiki/Triage-Process)
|
36
|
+
* Some more guidelines on filing good bug reports:
|
37
|
+
* http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
|
38
|
+
* http://itscommonsensestupid.blogspot.com/2008/07/tips-to-write-good-bug-report.html
|
39
|
+
* http://timheuer.com/blog/archive/2011/10/12/anatomy-of-a-good-bug-report.aspx
|
data/README.md
CHANGED
@@ -1,9 +1,24 @@
|
|
1
|
-
![Celluloid]
|
2
|
-
|
3
|
-
[![Gem Version]
|
4
|
-
[![
|
5
|
-
[![
|
6
|
-
[![
|
1
|
+
# ![Celluloid][celluloid-logo-image-raw]
|
2
|
+
|
3
|
+
[![Gem Version][gem-image]][gem-link]
|
4
|
+
[![MIT licensed][license-image]][license-link]
|
5
|
+
[![Build Status][build-image]][build-link]
|
6
|
+
[![Maintained: no][maintained-image]][maintained-link]
|
7
|
+
|
8
|
+
[celluloid-logo-image-raw]: https://raw.github.com/celluloid/celluloid-logos/master/celluloid/celluloid.png
|
9
|
+
[gem-image]: https://badge.fury.io/rb/celluloid.svg
|
10
|
+
[gem-link]: http://rubygems.org/gems/celluloid
|
11
|
+
[build-image]: https://secure.travis-ci.org/celluloid/celluloid.svg?branch=master
|
12
|
+
[build-link]: http://travis-ci.org/celluloid/celluloid
|
13
|
+
[license-image]: https://img.shields.io/badge/license-MIT-blue.svg
|
14
|
+
[license-link]: https://github.com/celluloid/celluloid/blob/master/LICENSE.txt
|
15
|
+
[maintained-image]: https://img.shields.io/maintenance/no/2016.svg
|
16
|
+
[maintained-link]: https://github.com/celluloid/celluloid/issues/779
|
17
|
+
|
18
|
+
_NOTE: This is the 0.18.x **development** branch of Celluloid. For the 0.17.x
|
19
|
+
**stable** branch, please see:_
|
20
|
+
|
21
|
+
https://github.com/celluloid/celluloid/tree/0-17-stable
|
7
22
|
|
8
23
|
> "I thought of objects being like biological cells and/or individual
|
9
24
|
> computers on a network, only able to communicate with messages"
|
@@ -15,6 +30,8 @@ objects just as easily as you build sequential programs out of regular objects.
|
|
15
30
|
Recommended for any developer, including novices, Celluloid should help ease
|
16
31
|
your worries about building multithreaded Ruby programs.
|
17
32
|
|
33
|
+
## Motivation
|
34
|
+
|
18
35
|
Much of the difficulty with building concurrent programs in Ruby arises because
|
19
36
|
the object-oriented mechanisms for structuring code, such as classes and
|
20
37
|
inheritance, are separate from the concurrency mechanisms, such as threads and
|
@@ -69,9 +86,6 @@ to EventMachine (with a synchronous API instead of callback/deferrable soup)
|
|
69
86
|
is available through the [Celluloid::IO](https://github.com/celluloid/celluloid-io)
|
70
87
|
library.
|
71
88
|
|
72
|
-
Like Celluloid? [Join the mailing list/Google Group](http://groups.google.com/group/celluloid-ruby)
|
73
|
-
or visit us on IRC at #celluloid on freenode
|
74
|
-
|
75
89
|
### Is it any good?
|
76
90
|
|
77
91
|
[Yes](http://news.ycombinator.com/item?id=3067434)
|
@@ -82,8 +96,12 @@ Yes, many users are now running Celluloid in production.
|
|
82
96
|
|
83
97
|
* **See:** [Projects Using Celluloid](https://github.com/celluloid/celluloid/wiki/Projects-Using-Celluloid)
|
84
98
|
|
85
|
-
|
86
|
-
|
99
|
+
## Discussion
|
100
|
+
|
101
|
+
Like Celluloid? [Join the mailing list/Google Group](http://groups.google.com/group/celluloid-ruby)
|
102
|
+
or visit us on IRC at #celluloid on freenode
|
103
|
+
|
104
|
+
## Documentation
|
87
105
|
|
88
106
|
[Please see the Celluloid Wiki](https://github.com/celluloid/celluloid/wiki)
|
89
107
|
for more detailed documentation and usage notes.
|
@@ -95,8 +113,7 @@ The following API documentation is also available:
|
|
95
113
|
* [Celluloid class methods](http://rubydoc.info/gems/celluloid/Celluloid/ClassMethods)
|
96
114
|
* [All Celluloid classes](http://rubydoc.info/gems/celluloid/index)
|
97
115
|
|
98
|
-
Related Projects
|
99
|
-
----------------
|
116
|
+
## Related Projects
|
100
117
|
|
101
118
|
Celluloid is the parent project of a related ecosystem of other projects. If you
|
102
119
|
like Celluloid we definitely recommend you check them out:
|
@@ -123,14 +140,11 @@ like Celluloid we definitely recommend you check them out:
|
|
123
140
|
[nio4r]: https://github.com/celluloid/nio4r/
|
124
141
|
[timers]: https://github.com/celluloid/timers/
|
125
142
|
|
126
|
-
Installation
|
127
|
-
------------
|
143
|
+
## Installation
|
128
144
|
|
129
145
|
Add this line to your application's Gemfile:
|
130
146
|
|
131
|
-
|
132
|
-
gem 'celluloid'
|
133
|
-
```
|
147
|
+
gem 'celluloid'
|
134
148
|
|
135
149
|
And then execute:
|
136
150
|
|
@@ -140,61 +154,51 @@ Or install it yourself as:
|
|
140
154
|
|
141
155
|
$ gem install celluloid
|
142
156
|
|
143
|
-
|
144
|
-
|
145
|
-
```ruby
|
146
|
-
require 'celluloid/current'
|
147
|
-
```
|
148
|
-
|
149
|
-
Or to support the old API, use:
|
157
|
+
Require Celluloid with:
|
150
158
|
|
151
|
-
|
152
|
-
require 'celluloid/backported'
|
153
|
-
```
|
159
|
+
require 'celluloid'
|
154
160
|
|
155
|
-
|
161
|
+
## Supported Platforms
|
156
162
|
|
157
|
-
|
163
|
+
This library aims to support and is [tested against][travis] the following Ruby
|
164
|
+
versions:
|
158
165
|
|
159
|
-
|
166
|
+
* Ruby 2.2.6+
|
167
|
+
* Ruby 2.3.0+
|
168
|
+
* JRuby 9.1.6.0+
|
160
169
|
|
161
|
-
|
162
|
-
|
163
|
-
__If you already cloned `Celluloid` without submodules:__
|
170
|
+
If something doesn't work on one of these versions, it's a bug.
|
164
171
|
|
165
|
-
|
172
|
+
This library may inadvertently work (or seem to work) on other Ruby versions,
|
173
|
+
however support will only be provided for the versions listed above.
|
166
174
|
|
167
|
-
|
175
|
+
If you would like this library to support another Ruby version or
|
176
|
+
implementation, you may volunteer to be a maintainer. Being a maintainer
|
177
|
+
entails making sure all tests run and pass on that implementation. When
|
178
|
+
something breaks on your implementation, you will be responsible for providing
|
179
|
+
patches in a timely fashion. If critical issues for a particular implementation
|
180
|
+
exist at the time of a major release, support for that Ruby version may be
|
181
|
+
dropped.
|
168
182
|
|
169
|
-
|
170
|
-
-------------------
|
183
|
+
[travis]: http://travis-ci.org/celluloid/celluloid/
|
171
184
|
|
172
|
-
|
185
|
+
## Additional Reading
|
173
186
|
|
174
|
-
|
175
|
-
parallelism when executing Ruby code, whereas MRI/YARV is constrained by a global
|
176
|
-
interpreter lock (GIL) and can only execute one thread at a time.
|
177
|
-
|
178
|
-
Celluloid requires Ruby 1.9 mode or higher on all interpreters.
|
179
|
-
|
180
|
-
Additional Reading
|
181
|
-
------------------
|
182
|
-
|
183
|
-
* [Concurrent Object-Oriented Programming in Python with
|
184
|
-
ATOM](http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=11A3EACE78AAFF6D6D62A64118AFCA7C?doi=10.1.1.47.5074&rep=rep1&type=pdf):
|
187
|
+
* [Concurrent Object-Oriented Programming in Python with ATOM][ATOM]
|
185
188
|
a similar system to Celluloid written in Python
|
186
189
|
|
187
|
-
|
188
|
-
|
190
|
+
[ATOM]: http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=11A3EACE78AAFF6D6D62A64118AFCA7C?doi=10.1.1.47.5074&rep=rep1&type=pdf
|
191
|
+
|
192
|
+
## Contributing to Celluloid
|
189
193
|
|
190
194
|
* Fork this repository on github
|
191
195
|
* Make your changes and send us a pull request
|
192
196
|
* If we like them we'll merge them
|
193
197
|
* If we've accepted a patch, feel free to ask for commit access
|
194
198
|
|
195
|
-
License
|
196
|
-
-------
|
199
|
+
## License
|
197
200
|
|
198
201
|
Copyright (c) 2011-2016 Tony Arcieri, Donovan Keme.
|
199
202
|
|
200
|
-
Distributed under the MIT License. See [LICENSE.txt](https://github.com/celluloid/celluloid/blob/master/LICENSE.txt)
|
203
|
+
Distributed under the MIT License. See [LICENSE.txt](https://github.com/celluloid/celluloid/blob/master/LICENSE.txt)
|
204
|
+
for further details.
|