@@ -24,7 +24,7 @@ def initialize(queue)
24
24
def on_message ( message )
25
25
case message
26
26
when :child
27
- AdHoc . spawn ( :pong , @queue ) { |queue | -> m { queue << m } }
27
+ AdHoc . spawn! ( :pong , @queue ) { |queue | -> m { queue << m } }
28
28
else
29
29
@queue << message
30
30
message
@@ -33,16 +33,16 @@ def on_message(message)
33
33
end
34
34
35
35
it 'forbids Immediate executor' do
36
- expect { Utils ::AdHoc . spawn name : 'test' , executor : ImmediateExecutor . new } . to raise_error
36
+ expect { Utils ::AdHoc . spawn! name : 'test' , executor : ImmediateExecutor . new } . to raise_error
37
37
end
38
38
39
39
describe 'spawning' do
40
- describe 'Actor#spawn' do
40
+ describe 'Actor#spawn! ' do
41
41
behaviour = -> v { -> _ { v } }
42
- subjects = { spawn : -> { Actor . spawn ( AdHoc , :ping , 'arg' , &behaviour ) } ,
43
- context_spawn : -> { AdHoc . spawn ( :ping , 'arg' , &behaviour ) } ,
44
- spawn_by_hash : -> { Actor . spawn ( class : AdHoc , name : :ping , args : [ 'arg' ] , &behaviour ) } ,
45
- context_spawn_by_hash : -> { AdHoc . spawn ( name : :ping , args : [ 'arg' ] , &behaviour ) } }
42
+ subjects = { spawn : -> { Actor . spawn! ( AdHoc , :ping , 'arg' , &behaviour ) } ,
43
+ context_spawn : -> { AdHoc . spawn! ( :ping , 'arg' , &behaviour ) } ,
44
+ spawn_by_hash : -> { Actor . spawn! ( class : AdHoc , name : :ping , args : [ 'arg' ] , &behaviour ) } ,
45
+ context_spawn_by_hash : -> { AdHoc . spawn! ( name : :ping , args : [ 'arg' ] , &behaviour ) } }
46
46
47
47
subjects . each do |desc , subject_definition |
48
48
describe desc do
@@ -89,14 +89,14 @@ def on_message(message)
89
89
end
90
90
91
91
it 'terminates on failed message processing' do
92
- a = AdHoc . spawn ( name : :fail , logger : Concurrent ::NULL_LOGGER ) { -> _ { raise } }
92
+ a = AdHoc . spawn! ( name : :fail , logger : Concurrent ::NULL_LOGGER ) { -> _ { raise } }
93
93
expect ( a . ask ( nil ) . wait . rejected? ) . to be_truthy
94
94
expect ( a . ask! ( :terminated? ) ) . to be_truthy
95
95
end
96
96
end
97
97
98
98
describe 'messaging' do
99
- subject { AdHoc . spawn ( :add ) { c = 0 ; -> v { c = c + v } } }
99
+ subject { AdHoc . spawn! ( :add ) { c = 0 ; -> v { c = c + v } } }
100
100
specify do
101
101
subject . tell ( 1 ) . tell ( 1 )
102
102
subject << 1 << 1
@@ -107,10 +107,10 @@ def on_message(message)
107
107
108
108
describe 'children' do
109
109
let ( :parent ) do
110
- AdHoc . spawn ( :parent ) do
110
+ AdHoc . spawn! ( :parent ) do
111
111
-> message do
112
112
if message == :child
113
- AdHoc . spawn ( :child ) { -> _ { parent } }
113
+ AdHoc . spawn! ( :child ) { -> _ { parent } }
114
114
else
115
115
children
116
116
end
@@ -128,7 +128,7 @@ def on_message(message)
128
128
end
129
129
130
130
describe 'envelope' do
131
- subject { AdHoc . spawn ( :subject ) { -> _ { envelope } } }
131
+ subject { AdHoc . spawn! ( :subject ) { -> _ { envelope } } }
132
132
specify do
133
133
envelope = subject . ask! ( 'a' )
134
134
expect ( envelope ) . to be_a_kind_of Envelope
@@ -142,8 +142,8 @@ def on_message(message)
142
142
143
143
describe 'termination' do
144
144
subject do
145
- AdHoc . spawn ( :parent ) do
146
- child = AdHoc . spawn ( :child ) { -> v { v } }
145
+ AdHoc . spawn! ( :parent ) do
146
+ child = AdHoc . spawn! ( :child ) { -> v { v } }
147
147
-> v { child }
148
148
end
149
149
end
@@ -171,8 +171,8 @@ def on_message(message)
171
171
172
172
describe 'message redirecting' do
173
173
let ( :parent ) do
174
- AdHoc . spawn ( :parent ) do
175
- child = AdHoc . spawn ( :child ) { -> m { m +1 } }
174
+ AdHoc . spawn! ( :parent ) do
175
+ child = AdHoc . spawn! ( :child ) { -> m { m +1 } }
176
176
-> message do
177
177
if message == :child
178
178
child
@@ -192,9 +192,9 @@ def on_message(message)
192
192
queue = Queue . new
193
193
failure = nil
194
194
# FIXME this leads to weird message processing ordering
195
- # failure = AdHoc.spawn(:failure) { -> m { terminate! } }
195
+ # failure = AdHoc.spawn! (:failure) { -> m { terminate! } }
196
196
monitor = AdHoc . spawn! ( :monitor ) do
197
- failure = AdHoc . spawn ( :failure ) { -> m { m } }
197
+ failure = AdHoc . spawn! ( :failure ) { -> m { m } }
198
198
failure << :link
199
199
-> m { queue << [ m , envelope . sender ] }
200
200
end
@@ -209,7 +209,7 @@ def on_message(message)
209
209
queue = Queue . new
210
210
failure = nil
211
211
monitor = AdHoc . spawn! ( :monitor ) do
212
- failure = AdHoc . spawn ( name : :failure , link : true ) { -> m { m } }
212
+ failure = AdHoc . spawn! ( name : :failure , link : true ) { -> m { m } }
213
213
-> m { queue << [ m , envelope . sender ] }
214
214
end
215
215
@@ -225,8 +225,8 @@ def on_message(message)
225
225
queue = Queue . new
226
226
resuming_behaviour = Behaviour . restarting_behaviour_definition ( :resume! )
227
227
228
- test = AdHoc . spawn name : :tester , behaviour_definition : resuming_behaviour do
229
- actor = AdHoc . spawn name : :pausing , behaviour_definition : Behaviour . restarting_behaviour_definition do
228
+ test = AdHoc . spawn! name : :tester , behaviour_definition : resuming_behaviour do
229
+ actor = AdHoc . spawn! name : :pausing , behaviour_definition : Behaviour . restarting_behaviour_definition do
230
230
queue << :init
231
231
-> m { m == :add ? 1 : pass }
232
232
end
@@ -248,8 +248,8 @@ def on_message(message)
248
248
249
249
it 'pauses on error and resets' do
250
250
queue = Queue . new
251
- test = AdHoc . spawn name : :tester , behaviour_definition : Behaviour . restarting_behaviour_definition do
252
- actor = AdHoc . spawn name : :pausing , behaviour_definition : Behaviour . restarting_behaviour_definition do
251
+ test = AdHoc . spawn! name : :tester , behaviour_definition : Behaviour . restarting_behaviour_definition do
252
+ actor = AdHoc . spawn! name : :pausing , behaviour_definition : Behaviour . restarting_behaviour_definition do
253
253
queue << :init
254
254
-> m { m == :object_id ? self . object_id : pass }
255
255
end
@@ -284,9 +284,9 @@ def on_message(message)
284
284
end
285
285
end
286
286
287
- test = AdHoc . spawn name : :tester , behaviour_definition : resuming_behaviour do
287
+ test = AdHoc . spawn! name : :tester , behaviour_definition : resuming_behaviour do
288
288
289
- actor = AdHoc . spawn name : :pausing ,
289
+ actor = AdHoc . spawn! name : :pausing ,
290
290
behaviour_definition : Behaviour . restarting_behaviour_definition do
291
291
queue << :init
292
292
-> m { m == :add ? 1 : pass }
@@ -316,7 +316,7 @@ def on_message(message)
316
316
it 'supports asks' , buggy : true do
317
317
children = Queue . new
318
318
pool = Concurrent ::Actor ::Utils ::Pool . spawn! 'pool' , 5 do |index |
319
- worker = Concurrent ::Actor ::Utils ::AdHoc . spawn name : "worker-#{ index } " , supervised : true do
319
+ worker = Concurrent ::Actor ::Utils ::AdHoc . spawn! name : "worker-#{ index } " , supervised : true do
320
320
lambda do |message |
321
321
fail if message == :fail
322
322
5 + message
0 commit comments