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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +20 -0
  3. data/README.md +29 -2
  4. data/lib/celluloid.rb +68 -73
  5. data/lib/celluloid/actor.rb +69 -123
  6. data/lib/celluloid/actor_system.rb +107 -0
  7. data/lib/celluloid/calls.rb +16 -16
  8. data/lib/celluloid/cell.rb +89 -0
  9. data/lib/celluloid/condition.rb +25 -8
  10. data/lib/celluloid/cpu_counter.rb +2 -0
  11. data/lib/celluloid/evented_mailbox.rb +2 -1
  12. data/lib/celluloid/exceptions.rb +23 -0
  13. data/lib/celluloid/future.rb +1 -1
  14. data/lib/celluloid/handlers.rb +41 -0
  15. data/lib/celluloid/internal_pool.rb +0 -3
  16. data/lib/celluloid/logger.rb +30 -0
  17. data/lib/celluloid/logging/incident_logger.rb +1 -1
  18. data/lib/celluloid/mailbox.rb +19 -18
  19. data/lib/celluloid/method.rb +8 -0
  20. data/lib/celluloid/pool_manager.rb +1 -1
  21. data/lib/celluloid/probe.rb +73 -0
  22. data/lib/celluloid/properties.rb +2 -2
  23. data/lib/celluloid/proxies/actor_proxy.rb +9 -41
  24. data/lib/celluloid/proxies/cell_proxy.rb +68 -0
  25. data/lib/celluloid/proxies/sync_proxy.rb +1 -1
  26. data/lib/celluloid/receivers.rb +1 -0
  27. data/lib/celluloid/registry.rb +1 -8
  28. data/lib/celluloid/stack_dump.rb +34 -11
  29. data/lib/celluloid/supervision_group.rb +26 -14
  30. data/lib/celluloid/tasks.rb +6 -9
  31. data/lib/celluloid/tasks/task_fiber.rb +6 -0
  32. data/lib/celluloid/tasks/task_thread.rb +2 -1
  33. data/lib/celluloid/thread_handle.rb +2 -2
  34. data/spec/celluloid/actor_spec.rb +1 -1
  35. data/spec/celluloid/actor_system_spec.rb +69 -0
  36. data/spec/celluloid/block_spec.rb +1 -1
  37. data/spec/celluloid/calls_spec.rb +1 -1
  38. data/spec/celluloid/condition_spec.rb +14 -3
  39. data/spec/celluloid/cpu_counter_spec.rb +9 -0
  40. data/spec/celluloid/fsm_spec.rb +1 -1
  41. data/spec/celluloid/future_spec.rb +1 -1
  42. data/spec/celluloid/notifications_spec.rb +1 -1
  43. data/spec/celluloid/pool_spec.rb +1 -1
  44. data/spec/celluloid/probe_spec.rb +121 -0
  45. data/spec/celluloid/registry_spec.rb +6 -6
  46. data/spec/celluloid/stack_dump_spec.rb +37 -8
  47. data/spec/celluloid/supervision_group_spec.rb +7 -1
  48. data/spec/celluloid/supervisor_spec.rb +12 -1
  49. data/spec/celluloid/tasks/task_fiber_spec.rb +1 -1
  50. data/spec/celluloid/tasks/task_thread_spec.rb +1 -1
  51. data/spec/celluloid/thread_handle_spec.rb +7 -3
  52. data/spec/spec_helper.rb +20 -7
  53. data/spec/support/actor_examples.rb +33 -15
  54. data/spec/support/mailbox_examples.rb +9 -3
  55. data/spec/support/task_examples.rb +2 -0
  56. 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].name.should == :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::Registry.root.delete(:marilyn)
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::Registry.root.delete(:marilyn)
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 = actor_klass.new
25
+ actor = actor_system.within do
26
+ actor_klass.new
27
+ end
18
28
  actor.async.blocking
19
29
  end
20
30
 
21
- Celluloid.internal_pool.get do
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
- it 'should include all actors' do
28
- subject.actors.size.should == Celluloid::Actor.all.size
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
- it 'should include threads that are not actors' do
32
- pending "bugs"
33
- subject.threads.size.should == 2
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,5 +1,5 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Celluloid::TaskFiber do
3
+ describe Celluloid::TaskFiber, actor_system: :within do
4
4
  it_behaves_like "a Celluloid Task", Celluloid::TaskFiber
5
5
  end
@@ -1,5 +1,5 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe Celluloid::TaskThread do
3
+ describe Celluloid::TaskThread, actor_system: :within do
4
4
  it_behaves_like "a Celluloid Task", Celluloid::TaskThread
5
5
  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
@@ -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
- logger = Celluloid.logger = Logger.new(logfile)
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.before do
22
- Celluloid.logger = logger
23
- if Celluloid.running?
24
- Celluloid.shutdown
25
- sleep 0.01
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::ActorProxy\(/)
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::ActorProxy\(/)
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::ActorProxy\(/)
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
- ExampleReceiver = Class.new do
314
+ example_receiver = Class.new do
304
315
  include included_module
305
316
  task_class task_klass
306
317
 
307
- def receiver_method
318
+ define_method(:receiver_method) do
308
319
  raise ExampleCrash, "the spec purposely crashed me :("
309
320
  end
310
321
  end
311
322
 
312
- ExampleCaller = Class.new do
323
+ excample_caller = Class.new do
313
324
  include included_module
314
325
  task_class task_klass
315
326
 
316
- def sender_method
317
- ExampleReceiver.new.receiver_method
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
- ExampleCaller.new.sender_method
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 = double.as_null_object
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::ActorProxy
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
- subject.receive(interval) { false }
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.15.2
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: 2013-10-06 00:00:00.000000000 Z
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: 1.1.0
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: 1.1.0
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: '0'
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: '0'
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.3
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