celluloid 0.14.1 → 0.15.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -2
  3. data/lib/celluloid.rb +92 -108
  4. data/lib/celluloid/actor.rb +42 -64
  5. data/lib/celluloid/autostart.rb +1 -1
  6. data/lib/celluloid/call_chain.rb +13 -0
  7. data/lib/celluloid/calls.rb +5 -8
  8. data/lib/celluloid/condition.rb +8 -10
  9. data/lib/celluloid/cpu_counter.rb +1 -1
  10. data/lib/celluloid/evented_mailbox.rb +7 -10
  11. data/lib/celluloid/fsm.rb +1 -1
  12. data/lib/celluloid/future.rb +1 -2
  13. data/lib/celluloid/internal_pool.rb +77 -20
  14. data/lib/celluloid/legacy.rb +0 -38
  15. data/lib/celluloid/mailbox.rb +17 -10
  16. data/lib/celluloid/pool_manager.rb +1 -1
  17. data/lib/celluloid/properties.rb +24 -0
  18. data/lib/celluloid/proxies/abstract_proxy.rb +3 -0
  19. data/lib/celluloid/proxies/actor_proxy.rb +3 -32
  20. data/lib/celluloid/proxies/async_proxy.rb +4 -8
  21. data/lib/celluloid/proxies/future_proxy.rb +8 -6
  22. data/lib/celluloid/proxies/sync_proxy.rb +12 -7
  23. data/lib/celluloid/rspec.rb +3 -1
  24. data/lib/celluloid/signals.rb +7 -35
  25. data/lib/celluloid/stack_dump.rb +50 -37
  26. data/lib/celluloid/supervision_group.rb +5 -5
  27. data/lib/celluloid/task_set.rb +49 -0
  28. data/lib/celluloid/tasks.rb +67 -42
  29. data/lib/celluloid/tasks/task_fiber.rb +3 -1
  30. data/lib/celluloid/tasks/task_thread.rb +2 -3
  31. data/lib/celluloid/thread.rb +2 -0
  32. data/spec/celluloid/actor_spec.rb +5 -0
  33. data/spec/celluloid/block_spec.rb +54 -0
  34. data/spec/celluloid/calls_spec.rb +42 -0
  35. data/spec/celluloid/condition_spec.rb +65 -0
  36. data/spec/celluloid/evented_mailbox_spec.rb +34 -0
  37. data/spec/celluloid/fsm_spec.rb +107 -0
  38. data/spec/celluloid/future_spec.rb +32 -0
  39. data/spec/celluloid/internal_pool_spec.rb +52 -0
  40. data/spec/celluloid/links_spec.rb +45 -0
  41. data/spec/celluloid/logging/ring_buffer_spec.rb +38 -0
  42. data/spec/celluloid/mailbox_spec.rb +5 -0
  43. data/spec/celluloid/notifications_spec.rb +120 -0
  44. data/spec/celluloid/pool_spec.rb +52 -0
  45. data/spec/celluloid/properties_spec.rb +42 -0
  46. data/spec/celluloid/registry_spec.rb +64 -0
  47. data/spec/celluloid/stack_dump_spec.rb +35 -0
  48. data/spec/celluloid/supervision_group_spec.rb +53 -0
  49. data/spec/celluloid/supervisor_spec.rb +92 -0
  50. data/spec/celluloid/tasks/task_fiber_spec.rb +5 -0
  51. data/spec/celluloid/tasks/task_thread_spec.rb +5 -0
  52. data/spec/celluloid/thread_handle_spec.rb +22 -0
  53. data/spec/celluloid/uuid_spec.rb +11 -0
  54. data/spec/spec_helper.rb +31 -0
  55. data/spec/support/actor_examples.rb +161 -10
  56. data/spec/support/example_actor_class.rb +8 -0
  57. data/spec/support/mailbox_examples.rb +15 -3
  58. data/spec/support/task_examples.rb +2 -2
  59. metadata +28 -3
  60. data/lib/celluloid/version.rb +0 -4
@@ -12,6 +12,10 @@ module ExampleActorClass
12
12
  @delegate = [:bar]
13
13
  end
14
14
 
15
+ def sleepy(duration)
16
+ sleep duration
17
+ end
18
+
15
19
  def change_name(new_name)
16
20
  @name = new_name
17
21
  end
@@ -66,6 +70,10 @@ module ExampleActorClass
66
70
  string.reverse
67
71
  end
68
72
 
73
+ def shutdown
74
+ terminate
75
+ end
76
+
69
77
  def method_missing(method_name, *args, &block)
70
78
  if delegates?(method_name)
71
79
  @delegate.send method_name, *args, &block
@@ -43,7 +43,7 @@ shared_context "a Celluloid Mailbox" do
43
43
  subject.size.should be_zero
44
44
  subject << :foo
45
45
  subject << :foo
46
- subject.size.should be 2
46
+ subject.should have(2).entries
47
47
  end
48
48
 
49
49
  it "discards messages received when when full" do
@@ -55,12 +55,24 @@ shared_context "a Celluloid Mailbox" do
55
55
  end
56
56
 
57
57
  it "logs discarded messages" do
58
- Celluloid.logger = mock.as_null_object
59
- Celluloid.logger.should_receive(:debug).with("Discarded message: third")
58
+ Celluloid.logger = double.as_null_object
59
+ Celluloid.logger.should_receive(:debug).with("Discarded message (mailbox is dead): third")
60
60
 
61
61
  subject.max_size = 2
62
62
  subject << :first
63
63
  subject << :second
64
64
  subject << :third
65
65
  end
66
+
67
+ it "discard messages when dead" do
68
+ Celluloid.logger = double.as_null_object
69
+ Celluloid.logger.should_receive(:debug).with("Discarded message (mailbox is dead): first")
70
+ Celluloid.logger.should_receive(:debug).with("Discarded message (mailbox is dead): second")
71
+ Celluloid.logger.should_receive(:debug).with("Discarded message (mailbox is dead): third")
72
+
73
+ subject << :first
74
+ subject << :second
75
+ subject.shutdown
76
+ subject << :third
77
+ end
66
78
  end
@@ -14,7 +14,7 @@ shared_context "a Celluloid Task" do |task_class|
14
14
  let(:suspend_state) { :doing_something }
15
15
  let(:actor) { MockActor.new }
16
16
 
17
- subject { task_class.new(task_type) { Celluloid::Task.suspend(suspend_state) } }
17
+ subject { task_class.new(task_type, {}) { Celluloid::Task.suspend(suspend_state) } }
18
18
 
19
19
  before :each do
20
20
  Thread.current[:celluloid_actor] = actor
@@ -37,7 +37,7 @@ shared_context "a Celluloid Task" do |task_class|
37
37
  end
38
38
 
39
39
  it "raises exceptions outside" do
40
- task = task_class.new(task_type) do
40
+ task = task_class.new(task_type, {}) do
41
41
  raise "failure"
42
42
  end
43
43
  expect do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: celluloid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.1
4
+ version: 0.15.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-05-31 00:00:00.000000000 Z
11
+ date: 2013-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: timers
@@ -91,6 +91,7 @@ files:
91
91
  - README.md
92
92
  - lib/celluloid/actor.rb
93
93
  - lib/celluloid/autostart.rb
94
+ - lib/celluloid/call_chain.rb
94
95
  - lib/celluloid/calls.rb
95
96
  - lib/celluloid/condition.rb
96
97
  - lib/celluloid/core_ext.rb
@@ -113,6 +114,7 @@ files:
113
114
  - lib/celluloid/method.rb
114
115
  - lib/celluloid/notifications.rb
115
116
  - lib/celluloid/pool_manager.rb
117
+ - lib/celluloid/properties.rb
116
118
  - lib/celluloid/proxies/abstract_proxy.rb
117
119
  - lib/celluloid/proxies/actor_proxy.rb
118
120
  - lib/celluloid/proxies/async_proxy.rb
@@ -128,14 +130,37 @@ files:
128
130
  - lib/celluloid/supervision_group.rb
129
131
  - lib/celluloid/supervisor.rb
130
132
  - lib/celluloid/system_events.rb
133
+ - lib/celluloid/task_set.rb
131
134
  - lib/celluloid/tasks/task_fiber.rb
132
135
  - lib/celluloid/tasks/task_thread.rb
133
136
  - lib/celluloid/tasks.rb
134
137
  - lib/celluloid/thread.rb
135
138
  - lib/celluloid/thread_handle.rb
136
139
  - lib/celluloid/uuid.rb
137
- - lib/celluloid/version.rb
138
140
  - lib/celluloid.rb
141
+ - spec/celluloid/actor_spec.rb
142
+ - spec/celluloid/block_spec.rb
143
+ - spec/celluloid/calls_spec.rb
144
+ - spec/celluloid/condition_spec.rb
145
+ - spec/celluloid/evented_mailbox_spec.rb
146
+ - spec/celluloid/fsm_spec.rb
147
+ - spec/celluloid/future_spec.rb
148
+ - spec/celluloid/internal_pool_spec.rb
149
+ - spec/celluloid/links_spec.rb
150
+ - spec/celluloid/logging/ring_buffer_spec.rb
151
+ - spec/celluloid/mailbox_spec.rb
152
+ - spec/celluloid/notifications_spec.rb
153
+ - spec/celluloid/pool_spec.rb
154
+ - spec/celluloid/properties_spec.rb
155
+ - spec/celluloid/registry_spec.rb
156
+ - spec/celluloid/stack_dump_spec.rb
157
+ - spec/celluloid/supervision_group_spec.rb
158
+ - spec/celluloid/supervisor_spec.rb
159
+ - spec/celluloid/tasks/task_fiber_spec.rb
160
+ - spec/celluloid/tasks/task_thread_spec.rb
161
+ - spec/celluloid/thread_handle_spec.rb
162
+ - spec/celluloid/uuid_spec.rb
163
+ - spec/spec_helper.rb
139
164
  - spec/support/actor_examples.rb
140
165
  - spec/support/example_actor_class.rb
141
166
  - spec/support/mailbox_examples.rb
@@ -1,4 +0,0 @@
1
- module Celluloid
2
- VERSION = '0.14.1'
3
- def self.version; VERSION; end
4
- end