celluloid 0.15.2 → 0.16.0.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/LICENSE.txt +20 -0
- data/README.md +29 -2
- data/lib/celluloid.rb +68 -73
- data/lib/celluloid/actor.rb +69 -123
- data/lib/celluloid/actor_system.rb +107 -0
- data/lib/celluloid/calls.rb +16 -16
- data/lib/celluloid/cell.rb +89 -0
- data/lib/celluloid/condition.rb +25 -8
- data/lib/celluloid/cpu_counter.rb +2 -0
- data/lib/celluloid/evented_mailbox.rb +2 -1
- data/lib/celluloid/exceptions.rb +23 -0
- data/lib/celluloid/future.rb +1 -1
- data/lib/celluloid/handlers.rb +41 -0
- data/lib/celluloid/internal_pool.rb +0 -3
- data/lib/celluloid/logger.rb +30 -0
- data/lib/celluloid/logging/incident_logger.rb +1 -1
- data/lib/celluloid/mailbox.rb +19 -18
- data/lib/celluloid/method.rb +8 -0
- data/lib/celluloid/pool_manager.rb +1 -1
- data/lib/celluloid/probe.rb +73 -0
- data/lib/celluloid/properties.rb +2 -2
- data/lib/celluloid/proxies/actor_proxy.rb +9 -41
- data/lib/celluloid/proxies/cell_proxy.rb +68 -0
- data/lib/celluloid/proxies/sync_proxy.rb +1 -1
- data/lib/celluloid/receivers.rb +1 -0
- data/lib/celluloid/registry.rb +1 -8
- data/lib/celluloid/stack_dump.rb +34 -11
- data/lib/celluloid/supervision_group.rb +26 -14
- data/lib/celluloid/tasks.rb +6 -9
- data/lib/celluloid/tasks/task_fiber.rb +6 -0
- data/lib/celluloid/tasks/task_thread.rb +2 -1
- data/lib/celluloid/thread_handle.rb +2 -2
- data/spec/celluloid/actor_spec.rb +1 -1
- data/spec/celluloid/actor_system_spec.rb +69 -0
- data/spec/celluloid/block_spec.rb +1 -1
- data/spec/celluloid/calls_spec.rb +1 -1
- data/spec/celluloid/condition_spec.rb +14 -3
- data/spec/celluloid/cpu_counter_spec.rb +9 -0
- data/spec/celluloid/fsm_spec.rb +1 -1
- data/spec/celluloid/future_spec.rb +1 -1
- data/spec/celluloid/notifications_spec.rb +1 -1
- data/spec/celluloid/pool_spec.rb +1 -1
- data/spec/celluloid/probe_spec.rb +121 -0
- data/spec/celluloid/registry_spec.rb +6 -6
- data/spec/celluloid/stack_dump_spec.rb +37 -8
- data/spec/celluloid/supervision_group_spec.rb +7 -1
- data/spec/celluloid/supervisor_spec.rb +12 -1
- data/spec/celluloid/tasks/task_fiber_spec.rb +1 -1
- data/spec/celluloid/tasks/task_thread_spec.rb +1 -1
- data/spec/celluloid/thread_handle_spec.rb +7 -3
- data/spec/spec_helper.rb +20 -7
- data/spec/support/actor_examples.rb +33 -15
- data/spec/support/mailbox_examples.rb +9 -3
- data/spec/support/task_examples.rb +2 -0
- metadata +32 -22
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Celluloid::Registry do
|
3
|
+
describe Celluloid::Registry, actor_system: :global do
|
4
4
|
class Marilyn
|
5
5
|
include Celluloid
|
6
6
|
|
@@ -27,21 +27,21 @@ describe Celluloid::Registry do
|
|
27
27
|
|
28
28
|
it "knows its name once registered" do
|
29
29
|
Celluloid::Actor[:marilyn] = Marilyn.new
|
30
|
-
Celluloid::Actor[:marilyn].
|
30
|
+
Celluloid::Actor[:marilyn].registered_name.should == :marilyn
|
31
31
|
end
|
32
32
|
|
33
33
|
describe :delete do
|
34
34
|
before do
|
35
35
|
Celluloid::Actor[:marilyn] ||= Marilyn.new
|
36
36
|
end
|
37
|
-
|
37
|
+
|
38
38
|
it "removes reference to actors' name from the registry" do
|
39
|
-
Celluloid::
|
39
|
+
Celluloid::Actor.delete(:marilyn)
|
40
40
|
Celluloid::Actor.registered.should_not include :marilyn
|
41
41
|
end
|
42
|
-
|
42
|
+
|
43
43
|
it "returns actor removed from the registry" do
|
44
|
-
rval = Celluloid::
|
44
|
+
rval = Celluloid::Actor.delete(:marilyn)
|
45
45
|
rval.should be_kind_of(Marilyn)
|
46
46
|
end
|
47
47
|
end
|
@@ -1,6 +1,14 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Celluloid::StackDump do
|
4
|
+
let(:actor_system) do
|
5
|
+
Celluloid::ActorSystem.new
|
6
|
+
end
|
7
|
+
|
8
|
+
subject do
|
9
|
+
actor_system.stack_dump
|
10
|
+
end
|
11
|
+
|
4
12
|
class BlockingActor
|
5
13
|
include Celluloid
|
6
14
|
|
@@ -14,22 +22,43 @@ describe Celluloid::StackDump do
|
|
14
22
|
actor_klass = Class.new(BlockingActor) do
|
15
23
|
task_class task_klass
|
16
24
|
end
|
17
|
-
actor =
|
25
|
+
actor = actor_system.within do
|
26
|
+
actor_klass.new
|
27
|
+
end
|
18
28
|
actor.async.blocking
|
19
29
|
end
|
20
30
|
|
21
|
-
|
22
|
-
Thread.current.role = :testing
|
31
|
+
@active_thread = actor_system.get_thread do
|
23
32
|
sleep
|
24
33
|
end
|
34
|
+
@active_thread.role = :other_thing
|
35
|
+
@idle_thread = actor_system.get_thread do
|
36
|
+
end
|
37
|
+
|
38
|
+
sleep 0.01
|
25
39
|
end
|
26
40
|
|
27
|
-
|
28
|
-
|
41
|
+
describe '#actors' do
|
42
|
+
it 'should include all actors' do
|
43
|
+
subject.actors.size.should == actor_system.running.size
|
44
|
+
end
|
29
45
|
end
|
30
46
|
|
31
|
-
|
32
|
-
|
33
|
-
|
47
|
+
describe '#threads' do
|
48
|
+
it 'should include threads that are not actors' do
|
49
|
+
subject.threads.size.should == 3
|
50
|
+
end
|
51
|
+
|
52
|
+
it 'should include idle threads' do
|
53
|
+
subject.threads.map(&:thread_id).should include(@idle_thread.object_id)
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should include threads checked out of the pool for roles other than :actor' do
|
57
|
+
subject.threads.map(&:thread_id).should include(@active_thread.object_id)
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'should have the correct roles' do
|
61
|
+
subject.threads.map(&:role).should include(nil, :other_thing, :task)
|
62
|
+
end
|
34
63
|
end
|
35
64
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Celluloid::SupervisionGroup do
|
3
|
+
describe Celluloid::SupervisionGroup, actor_system: :global do
|
4
4
|
before :all do
|
5
5
|
class MyActor
|
6
6
|
include Celluloid
|
@@ -55,5 +55,11 @@ describe Celluloid::SupervisionGroup do
|
|
55
55
|
Celluloid::Actor[:example_pool].args.should eq ['foo']
|
56
56
|
Celluloid::Actor[:example_pool].size.should be 3
|
57
57
|
end
|
58
|
+
|
59
|
+
it "allows external access to the internal registry" do
|
60
|
+
supervisor = MyGroup.run!
|
61
|
+
|
62
|
+
supervisor[:example].should be_a MyActor
|
63
|
+
end
|
58
64
|
end
|
59
65
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe Celluloid::Supervisor do
|
3
|
+
describe Celluloid::Supervisor, actor_system: :global do
|
4
4
|
class SubordinateDead < StandardError; end
|
5
5
|
|
6
6
|
class Subordinate
|
@@ -89,4 +89,15 @@ describe Celluloid::Supervisor do
|
|
89
89
|
new_subordinate.should_not eq subordinate
|
90
90
|
new_subordinate.state.should be(:working)
|
91
91
|
end
|
92
|
+
|
93
|
+
it "removes an actor if it terminates cleanly" do
|
94
|
+
supervisor = Subordinate.supervise(:working)
|
95
|
+
subordinate = supervisor.actors.first
|
96
|
+
|
97
|
+
supervisor.actors.should == [subordinate]
|
98
|
+
|
99
|
+
subordinate.terminate
|
100
|
+
|
101
|
+
supervisor.actors.should be_empty
|
102
|
+
end
|
92
103
|
end
|
@@ -1,9 +1,13 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Celluloid::ThreadHandle do
|
4
|
+
let(:actor_system) do
|
5
|
+
Celluloid::ActorSystem.new
|
6
|
+
end
|
7
|
+
|
4
8
|
it "knows thread liveliness" do
|
5
9
|
queue = Queue.new
|
6
|
-
handle = Celluloid::ThreadHandle.new { queue.pop }
|
10
|
+
handle = Celluloid::ThreadHandle.new(actor_system) { queue.pop }
|
7
11
|
handle.should be_alive
|
8
12
|
|
9
13
|
queue << :die
|
@@ -13,10 +17,10 @@ describe Celluloid::ThreadHandle do
|
|
13
17
|
end
|
14
18
|
|
15
19
|
it "joins to thread handles" do
|
16
|
-
Celluloid::ThreadHandle.new { sleep 0.01 }.join
|
20
|
+
Celluloid::ThreadHandle.new(actor_system) { sleep 0.01 }.join
|
17
21
|
end
|
18
22
|
|
19
23
|
it "supports passing a role" do
|
20
|
-
Celluloid::ThreadHandle.new(:useful) { Thread.current.role.should == :useful }.join
|
24
|
+
Celluloid::ThreadHandle.new(actor_system, :useful) { Thread.current.role.should == :useful }.join
|
21
25
|
end
|
22
26
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -4,11 +4,12 @@ Coveralls.wear!
|
|
4
4
|
require 'rubygems'
|
5
5
|
require 'bundler/setup'
|
6
6
|
require 'celluloid/rspec'
|
7
|
+
require 'celluloid/probe'
|
7
8
|
|
8
9
|
logfile = File.open(File.expand_path("../../log/test.log", __FILE__), 'a')
|
9
10
|
logfile.sync = true
|
10
11
|
|
11
|
-
|
12
|
+
Celluloid.logger = Logger.new(logfile)
|
12
13
|
|
13
14
|
Celluloid.shutdown_timeout = 1
|
14
15
|
|
@@ -18,14 +19,26 @@ RSpec.configure do |config|
|
|
18
19
|
config.filter_run :focus => true
|
19
20
|
config.run_all_when_everything_filtered = true
|
20
21
|
|
21
|
-
config.
|
22
|
-
Celluloid.
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
Celluloid.internal_pool.assert_inactive
|
22
|
+
config.around do |ex|
|
23
|
+
Celluloid.actor_system = nil
|
24
|
+
Thread.list.each do |thread|
|
25
|
+
next if thread == Thread.current
|
26
|
+
thread.kill
|
27
27
|
end
|
28
28
|
|
29
|
+
ex.run
|
30
|
+
end
|
31
|
+
|
32
|
+
config.around actor_system: :global do |ex|
|
29
33
|
Celluloid.boot
|
34
|
+
ex.run
|
35
|
+
Celluloid.shutdown
|
36
|
+
end
|
37
|
+
|
38
|
+
config.around actor_system: :within do |ex|
|
39
|
+
Celluloid::ActorSystem.new.within do
|
40
|
+
ex.run
|
41
|
+
end
|
30
42
|
end
|
43
|
+
|
31
44
|
end
|
@@ -65,6 +65,19 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
65
65
|
method.arity.should be(1)
|
66
66
|
end
|
67
67
|
|
68
|
+
it "supports #name calls via #method" do
|
69
|
+
method = actor_class.new("Troy McClure").method(:greet)
|
70
|
+
method.name.should == :greet
|
71
|
+
end
|
72
|
+
|
73
|
+
it "supports #parameters via #method" do
|
74
|
+
method = actor_class.new("Troy McClure").method(:greet)
|
75
|
+
method.parameters.should == []
|
76
|
+
|
77
|
+
method = actor_class.new("Troy McClure").method(:change_name)
|
78
|
+
method.parameters.should == [[:req, :new_name]]
|
79
|
+
end
|
80
|
+
|
68
81
|
it "supports future(:method) syntax for synchronous future calls" do
|
69
82
|
actor = actor_class.new "Troy McClure"
|
70
83
|
future = actor.future :greet
|
@@ -148,7 +161,6 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
148
161
|
end
|
149
162
|
end
|
150
163
|
|
151
|
-
Celluloid.logger = double.as_null_object
|
152
164
|
Celluloid.logger.should_receive(:warn).with(/Dangerously suspending task: type=:call, meta={:method_name=>:initialize}, status=:sleeping/)
|
153
165
|
|
154
166
|
actor = klass.new
|
@@ -175,7 +187,6 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
175
187
|
end
|
176
188
|
end
|
177
189
|
|
178
|
-
Celluloid.logger = double.as_null_object
|
179
190
|
Celluloid.logger.should_receive(:warn).with(/Dangerously suspending task: type=:finalizer, meta={:method_name=>:cleanup}, status=:sleeping/)
|
180
191
|
|
181
192
|
actor = klass.new
|
@@ -221,7 +232,7 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
221
232
|
|
222
233
|
it "inspects properly" do
|
223
234
|
actor = actor_class.new "Troy McClure"
|
224
|
-
actor.inspect.should match(/Celluloid::
|
235
|
+
actor.inspect.should match(/Celluloid::CellProxy\(/)
|
225
236
|
actor.inspect.should match(/#{actor_class}/)
|
226
237
|
actor.inspect.should include('@name="Troy McClure"')
|
227
238
|
actor.inspect.should_not include("@celluloid")
|
@@ -230,7 +241,7 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
230
241
|
it "inspects properly when dead" do
|
231
242
|
actor = actor_class.new "Troy McClure"
|
232
243
|
actor.terminate
|
233
|
-
actor.inspect.should match(/Celluloid::
|
244
|
+
actor.inspect.should match(/Celluloid::CellProxy\(/)
|
234
245
|
actor.inspect.should match(/#{actor_class}/)
|
235
246
|
actor.inspect.should include('dead')
|
236
247
|
end
|
@@ -252,7 +263,7 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
252
263
|
itchy.other = scratchy
|
253
264
|
|
254
265
|
inspection = itchy.inspect
|
255
|
-
inspection.should match(/Celluloid::
|
266
|
+
inspection.should match(/Celluloid::CellProxy\(/)
|
256
267
|
inspection.should include("...")
|
257
268
|
end
|
258
269
|
|
@@ -300,27 +311,27 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
300
311
|
end
|
301
312
|
|
302
313
|
it "includes both sender and receiver in exception traces" do
|
303
|
-
|
314
|
+
example_receiver = Class.new do
|
304
315
|
include included_module
|
305
316
|
task_class task_klass
|
306
317
|
|
307
|
-
|
318
|
+
define_method(:receiver_method) do
|
308
319
|
raise ExampleCrash, "the spec purposely crashed me :("
|
309
320
|
end
|
310
321
|
end
|
311
322
|
|
312
|
-
|
323
|
+
excample_caller = Class.new do
|
313
324
|
include included_module
|
314
325
|
task_class task_klass
|
315
326
|
|
316
|
-
|
317
|
-
|
327
|
+
define_method(:sender_method) do
|
328
|
+
example_receiver.new.receiver_method
|
318
329
|
end
|
319
330
|
end
|
320
331
|
|
321
332
|
ex = nil
|
322
333
|
begin
|
323
|
-
|
334
|
+
excample_caller.new.sender_method
|
324
335
|
rescue => ex
|
325
336
|
end
|
326
337
|
|
@@ -404,6 +415,15 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
404
415
|
end.to raise_exception(Celluloid::DeadActorError)
|
405
416
|
end
|
406
417
|
|
418
|
+
it "terminates cleanly on Celluloid shutdown" do
|
419
|
+
Celluloid::Actor.stub(:kill).and_call_original
|
420
|
+
|
421
|
+
actor = actor_class.new "Arnold Schwarzenegger"
|
422
|
+
|
423
|
+
Celluloid.shutdown
|
424
|
+
Celluloid::Actor.should_not have_received(:kill)
|
425
|
+
end
|
426
|
+
|
407
427
|
it "raises the right DeadActorError if terminate! called after terminated" do
|
408
428
|
actor = actor_class.new "Arnold Schwarzenegger"
|
409
429
|
actor.terminate
|
@@ -414,8 +434,7 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
414
434
|
end
|
415
435
|
|
416
436
|
it "logs a warning when terminating tasks" do
|
417
|
-
Celluloid.logger =
|
418
|
-
Celluloid.logger.should_receive(:warn).with("Terminating task: type=:call, meta={:method_name=>:sleepy}, status=:sleeping")
|
437
|
+
Celluloid.logger.should_receive(:warn).with(/^Terminating task: type=:call, meta={:method_name=>:sleepy}, status=:sleeping\n/)
|
419
438
|
|
420
439
|
actor = actor_class.new "Arnold Schwarzenegger"
|
421
440
|
actor.async.sleepy 10
|
@@ -923,7 +942,7 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
923
942
|
end
|
924
943
|
|
925
944
|
context :proxy_class do
|
926
|
-
class ExampleProxy < Celluloid::
|
945
|
+
class ExampleProxy < Celluloid::CellProxy
|
927
946
|
def subclass_proxy?
|
928
947
|
true
|
929
948
|
end
|
@@ -1000,7 +1019,6 @@ shared_examples "Celluloid::Actor examples" do |included_module, task_klass|
|
|
1000
1019
|
|
1001
1020
|
context "raw message sends" do
|
1002
1021
|
it "logs on unhandled messages" do
|
1003
|
-
Celluloid.logger = double.as_null_object
|
1004
1022
|
Celluloid.logger.should_receive(:debug).with("Discarded message (unhandled): first")
|
1005
1023
|
|
1006
1024
|
actor = actor_class.new "Irma Gladden"
|
@@ -1,4 +1,9 @@
|
|
1
1
|
shared_context "a Celluloid Mailbox" do
|
2
|
+
after do
|
3
|
+
Celluloid.logger.stub(:debug)
|
4
|
+
subject.shutdown if subject.alive?
|
5
|
+
end
|
6
|
+
|
2
7
|
it "receives messages" do
|
3
8
|
message = :ohai
|
4
9
|
|
@@ -34,7 +39,10 @@ shared_context "a Celluloid Mailbox" do
|
|
34
39
|
interval = 0.1
|
35
40
|
started_at = Time.now
|
36
41
|
|
37
|
-
|
42
|
+
expect do
|
43
|
+
subject.receive(interval) { false }
|
44
|
+
end.to raise_exception(Celluloid::TimeoutError)
|
45
|
+
|
38
46
|
(Time.now - started_at).should be_within(Celluloid::TIMER_QUANTUM).of interval
|
39
47
|
end
|
40
48
|
|
@@ -55,7 +63,6 @@ shared_context "a Celluloid Mailbox" do
|
|
55
63
|
end
|
56
64
|
|
57
65
|
it "logs discarded messages" do
|
58
|
-
Celluloid.logger = double.as_null_object
|
59
66
|
Celluloid.logger.should_receive(:debug).with("Discarded message (mailbox is dead): third")
|
60
67
|
|
61
68
|
subject.max_size = 2
|
@@ -65,7 +72,6 @@ shared_context "a Celluloid Mailbox" do
|
|
65
72
|
end
|
66
73
|
|
67
74
|
it "discard messages when dead" do
|
68
|
-
Celluloid.logger = double.as_null_object
|
69
75
|
Celluloid.logger.should_receive(:debug).with("Discarded message (mailbox is dead): first")
|
70
76
|
Celluloid.logger.should_receive(:debug).with("Discarded message (mailbox is dead): second")
|
71
77
|
Celluloid.logger.should_receive(:debug).with("Discarded message (mailbox is dead): third")
|
@@ -17,11 +17,13 @@ shared_context "a Celluloid Task" do |task_class|
|
|
17
17
|
subject { task_class.new(task_type, {}) { Celluloid::Task.suspend(suspend_state) } }
|
18
18
|
|
19
19
|
before :each do
|
20
|
+
Thread.current[:celluloid_actor_system] = Celluloid.actor_system
|
20
21
|
Thread.current[:celluloid_actor] = actor
|
21
22
|
end
|
22
23
|
|
23
24
|
after :each do
|
24
25
|
Thread.current[:celluloid_actor] = nil
|
26
|
+
Thread.current[:celluloid_actor_system] = nil
|
25
27
|
end
|
26
28
|
|
27
29
|
it "begins with status :new" do
|
metadata
CHANGED
@@ -1,83 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: celluloid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Arcieri
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: timers
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 2.14.1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 2.14.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: guard-rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: benchmark_suite
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
description: Celluloid enables people to build concurrent programs out of concurrent
|
@@ -88,37 +88,45 @@ executables: []
|
|
88
88
|
extensions: []
|
89
89
|
extra_rdoc_files: []
|
90
90
|
files:
|
91
|
+
- LICENSE.txt
|
91
92
|
- README.md
|
93
|
+
- lib/celluloid.rb
|
92
94
|
- lib/celluloid/actor.rb
|
95
|
+
- lib/celluloid/actor_system.rb
|
93
96
|
- lib/celluloid/autostart.rb
|
94
97
|
- lib/celluloid/call_chain.rb
|
95
98
|
- lib/celluloid/calls.rb
|
99
|
+
- lib/celluloid/cell.rb
|
96
100
|
- lib/celluloid/condition.rb
|
97
101
|
- lib/celluloid/core_ext.rb
|
98
102
|
- lib/celluloid/cpu_counter.rb
|
99
103
|
- lib/celluloid/evented_mailbox.rb
|
104
|
+
- lib/celluloid/exceptions.rb
|
100
105
|
- lib/celluloid/fiber.rb
|
101
106
|
- lib/celluloid/fsm.rb
|
102
107
|
- lib/celluloid/future.rb
|
108
|
+
- lib/celluloid/handlers.rb
|
103
109
|
- lib/celluloid/internal_pool.rb
|
104
110
|
- lib/celluloid/legacy.rb
|
105
111
|
- lib/celluloid/links.rb
|
106
112
|
- lib/celluloid/logger.rb
|
113
|
+
- lib/celluloid/logging.rb
|
107
114
|
- lib/celluloid/logging/incident.rb
|
108
115
|
- lib/celluloid/logging/incident_logger.rb
|
109
116
|
- lib/celluloid/logging/incident_reporter.rb
|
110
117
|
- lib/celluloid/logging/log_event.rb
|
111
118
|
- lib/celluloid/logging/ring_buffer.rb
|
112
|
-
- lib/celluloid/logging.rb
|
113
119
|
- lib/celluloid/mailbox.rb
|
114
120
|
- lib/celluloid/method.rb
|
115
121
|
- lib/celluloid/notifications.rb
|
116
122
|
- lib/celluloid/pool_manager.rb
|
123
|
+
- lib/celluloid/probe.rb
|
117
124
|
- lib/celluloid/properties.rb
|
118
125
|
- lib/celluloid/proxies/abstract_proxy.rb
|
119
126
|
- lib/celluloid/proxies/actor_proxy.rb
|
120
127
|
- lib/celluloid/proxies/async_proxy.rb
|
121
128
|
- lib/celluloid/proxies/block_proxy.rb
|
129
|
+
- lib/celluloid/proxies/cell_proxy.rb
|
122
130
|
- lib/celluloid/proxies/future_proxy.rb
|
123
131
|
- lib/celluloid/proxies/sync_proxy.rb
|
124
132
|
- lib/celluloid/receivers.rb
|
@@ -131,18 +139,19 @@ files:
|
|
131
139
|
- lib/celluloid/supervisor.rb
|
132
140
|
- lib/celluloid/system_events.rb
|
133
141
|
- lib/celluloid/task_set.rb
|
142
|
+
- lib/celluloid/tasks.rb
|
134
143
|
- lib/celluloid/tasks/task_fiber.rb
|
135
144
|
- lib/celluloid/tasks/task_thread.rb
|
136
|
-
- lib/celluloid/tasks.rb
|
137
145
|
- lib/celluloid/test.rb
|
138
146
|
- lib/celluloid/thread.rb
|
139
147
|
- lib/celluloid/thread_handle.rb
|
140
148
|
- lib/celluloid/uuid.rb
|
141
|
-
- lib/celluloid.rb
|
142
149
|
- spec/celluloid/actor_spec.rb
|
150
|
+
- spec/celluloid/actor_system_spec.rb
|
143
151
|
- spec/celluloid/block_spec.rb
|
144
152
|
- spec/celluloid/calls_spec.rb
|
145
153
|
- spec/celluloid/condition_spec.rb
|
154
|
+
- spec/celluloid/cpu_counter_spec.rb
|
146
155
|
- spec/celluloid/evented_mailbox_spec.rb
|
147
156
|
- spec/celluloid/fsm_spec.rb
|
148
157
|
- spec/celluloid/future_spec.rb
|
@@ -152,6 +161,7 @@ files:
|
|
152
161
|
- spec/celluloid/mailbox_spec.rb
|
153
162
|
- spec/celluloid/notifications_spec.rb
|
154
163
|
- spec/celluloid/pool_spec.rb
|
164
|
+
- spec/celluloid/probe_spec.rb
|
155
165
|
- spec/celluloid/properties_spec.rb
|
156
166
|
- spec/celluloid/registry_spec.rb
|
157
167
|
- spec/celluloid/stack_dump_spec.rb
|
@@ -176,17 +186,17 @@ require_paths:
|
|
176
186
|
- lib
|
177
187
|
required_ruby_version: !ruby/object:Gem::Requirement
|
178
188
|
requirements:
|
179
|
-
- -
|
189
|
+
- - ">="
|
180
190
|
- !ruby/object:Gem::Version
|
181
191
|
version: 1.9.2
|
182
192
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
183
193
|
requirements:
|
184
|
-
- -
|
194
|
+
- - ">="
|
185
195
|
- !ruby/object:Gem::Version
|
186
196
|
version: 1.3.6
|
187
197
|
requirements: []
|
188
198
|
rubyforge_project:
|
189
|
-
rubygems_version: 2.0
|
199
|
+
rubygems_version: 2.2.0
|
190
200
|
signing_key:
|
191
201
|
specification_version: 4
|
192
202
|
summary: Actor-based concurrent object framework for Ruby
|