celluloid 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +93 -26
- data/lib/celluloid.rb +18 -13
- data/lib/celluloid.rbc +210 -113
- data/lib/celluloid/actor.rb +43 -28
- data/lib/celluloid/actor.rbc +689 -366
- data/lib/celluloid/actor_proxy.rb +9 -0
- data/lib/celluloid/actor_proxy.rbc +218 -35
- data/lib/celluloid/calls.rbc +1 -1
- data/lib/celluloid/core_ext.rbc +1 -1
- data/lib/celluloid/events.rbc +1 -1
- data/lib/celluloid/future.rb +48 -15
- data/lib/celluloid/future.rbc +646 -136
- data/lib/celluloid/linking.rb +5 -5
- data/lib/celluloid/linking.rbc +11 -11
- data/lib/celluloid/mailbox.rbc +1 -1
- data/lib/celluloid/registry.rbc +1 -1
- data/lib/celluloid/responses.rbc +1 -1
- data/lib/celluloid/signals.rb +25 -0
- data/lib/celluloid/{tuple.rbc → signals.rbc} +301 -150
- data/lib/celluloid/supervisor.rbc +1 -1
- data/lib/celluloid/version.rb +1 -1
- data/lib/celluloid/version.rbc +2 -2
- metadata +4 -5
- data/lib/celluloid/reference.rbc +0 -128
- data/lib/celluloid/waker.rbc +0 -0
data/lib/celluloid/linking.rb
CHANGED
@@ -59,27 +59,27 @@ module Celluloid
|
|
59
59
|
module Linking
|
60
60
|
# Link this actor to another, allowing it to crash or react to errors
|
61
61
|
def link(actor)
|
62
|
-
actor.notify_link(@
|
62
|
+
actor.notify_link(@_proxy)
|
63
63
|
self.notify_link(actor)
|
64
64
|
end
|
65
65
|
|
66
66
|
# Remove links to another actor
|
67
67
|
def unlink(actor)
|
68
|
-
actor.notify_unlink(@
|
68
|
+
actor.notify_unlink(@_proxy)
|
69
69
|
self.notify_unlink(actor)
|
70
70
|
end
|
71
71
|
|
72
72
|
def notify_link(actor)
|
73
|
-
@
|
73
|
+
@_links << actor
|
74
74
|
end
|
75
75
|
|
76
76
|
def notify_unlink(actor)
|
77
|
-
@
|
77
|
+
@_links.delete actor
|
78
78
|
end
|
79
79
|
|
80
80
|
# Is this actor linked to another?
|
81
81
|
def linked_to?(actor)
|
82
|
-
@
|
82
|
+
@_links.include? actor
|
83
83
|
end
|
84
84
|
end
|
85
85
|
end
|
data/lib/celluloid/linking.rbc
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
!RBIX
|
2
|
-
|
2
|
+
3246536075095810518
|
3
3
|
18
|
4
4
|
M
|
5
5
|
1
|
@@ -1483,8 +1483,8 @@ n
|
|
1483
1483
|
p
|
1484
1484
|
2
|
1485
1485
|
x
|
1486
|
-
|
1487
|
-
@
|
1486
|
+
7
|
1487
|
+
@_proxy
|
1488
1488
|
x
|
1489
1489
|
11
|
1490
1490
|
notify_link
|
@@ -1559,8 +1559,8 @@ n
|
|
1559
1559
|
p
|
1560
1560
|
2
|
1561
1561
|
x
|
1562
|
-
|
1563
|
-
@
|
1562
|
+
7
|
1563
|
+
@_proxy
|
1564
1564
|
x
|
1565
1565
|
13
|
1566
1566
|
notify_unlink
|
@@ -1622,8 +1622,8 @@ n
|
|
1622
1622
|
p
|
1623
1623
|
2
|
1624
1624
|
x
|
1625
|
-
|
1626
|
-
@
|
1625
|
+
7
|
1626
|
+
@_links
|
1627
1627
|
x
|
1628
1628
|
2
|
1629
1629
|
<<
|
@@ -1681,8 +1681,8 @@ n
|
|
1681
1681
|
p
|
1682
1682
|
2
|
1683
1683
|
x
|
1684
|
-
|
1685
|
-
@
|
1684
|
+
7
|
1685
|
+
@_links
|
1686
1686
|
x
|
1687
1687
|
6
|
1688
1688
|
delete
|
@@ -1740,8 +1740,8 @@ n
|
|
1740
1740
|
p
|
1741
1741
|
2
|
1742
1742
|
x
|
1743
|
-
|
1744
|
-
@
|
1743
|
+
7
|
1744
|
+
@_links
|
1745
1745
|
x
|
1746
1746
|
8
|
1747
1747
|
include?
|
data/lib/celluloid/mailbox.rbc
CHANGED
data/lib/celluloid/registry.rbc
CHANGED
data/lib/celluloid/responses.rbc
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
module Celluloid
|
2
|
+
# Event signaling between methods of the same object
|
3
|
+
class Signals
|
4
|
+
def initialize
|
5
|
+
@waiting = {}
|
6
|
+
end
|
7
|
+
|
8
|
+
# Wait for the given signal name and return the associated value
|
9
|
+
def wait(name)
|
10
|
+
fibers = @waiting[name] ||= []
|
11
|
+
fibers << Fiber.current
|
12
|
+
Fiber.yield
|
13
|
+
end
|
14
|
+
|
15
|
+
# Send a signal to all method calls waiting for the given name
|
16
|
+
# Returns true if any calls were signaled, or false otherwise
|
17
|
+
def send(name, value = nil)
|
18
|
+
fibers = @waiting.delete name
|
19
|
+
return unless fibers
|
20
|
+
|
21
|
+
fibers.each { |fiber| fiber.resume value }
|
22
|
+
true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
!RBIX
|
2
|
-
|
3
|
-
|
2
|
+
3246536075095810518
|
3
|
+
18
|
4
4
|
M
|
5
5
|
1
|
6
6
|
n
|
@@ -46,6 +46,8 @@ I
|
|
46
46
|
0
|
47
47
|
I
|
48
48
|
0
|
49
|
+
I
|
50
|
+
0
|
49
51
|
n
|
50
52
|
p
|
51
53
|
5
|
@@ -66,36 +68,34 @@ x
|
|
66
68
|
9
|
67
69
|
Celluloid
|
68
70
|
i
|
69
|
-
|
71
|
+
29
|
70
72
|
5
|
71
73
|
66
|
72
74
|
99
|
73
75
|
7
|
74
76
|
0
|
75
|
-
45
|
76
77
|
1
|
77
|
-
2
|
78
78
|
65
|
79
79
|
49
|
80
|
-
|
80
|
+
1
|
81
81
|
3
|
82
82
|
13
|
83
83
|
99
|
84
84
|
12
|
85
85
|
7
|
86
|
-
|
86
|
+
2
|
87
87
|
12
|
88
88
|
7
|
89
|
-
|
89
|
+
3
|
90
90
|
12
|
91
91
|
65
|
92
92
|
12
|
93
93
|
49
|
94
|
-
|
94
|
+
4
|
95
95
|
4
|
96
96
|
15
|
97
97
|
49
|
98
|
-
|
98
|
+
2
|
99
99
|
0
|
100
100
|
11
|
101
101
|
I
|
@@ -106,16 +106,14 @@ I
|
|
106
106
|
0
|
107
107
|
I
|
108
108
|
0
|
109
|
+
I
|
110
|
+
0
|
109
111
|
n
|
110
112
|
p
|
111
|
-
7
|
112
|
-
x
|
113
113
|
5
|
114
|
-
Tuple
|
115
114
|
x
|
116
|
-
|
117
|
-
|
118
|
-
n
|
115
|
+
7
|
116
|
+
Signals
|
119
117
|
x
|
120
118
|
10
|
121
119
|
open_class
|
@@ -127,10 +125,10 @@ M
|
|
127
125
|
n
|
128
126
|
n
|
129
127
|
x
|
130
|
-
|
131
|
-
|
128
|
+
7
|
129
|
+
Signals
|
132
130
|
i
|
133
|
-
|
131
|
+
44
|
134
132
|
5
|
135
133
|
66
|
136
134
|
99
|
@@ -160,6 +158,20 @@ i
|
|
160
158
|
49
|
161
159
|
3
|
162
160
|
4
|
161
|
+
15
|
162
|
+
99
|
163
|
+
7
|
164
|
+
6
|
165
|
+
7
|
166
|
+
7
|
167
|
+
65
|
168
|
+
67
|
169
|
+
49
|
170
|
+
2
|
171
|
+
0
|
172
|
+
49
|
173
|
+
3
|
174
|
+
4
|
163
175
|
11
|
164
176
|
I
|
165
177
|
5
|
@@ -169,247 +181,382 @@ I
|
|
169
181
|
0
|
170
182
|
I
|
171
183
|
0
|
184
|
+
I
|
185
|
+
0
|
172
186
|
n
|
173
187
|
p
|
174
|
-
|
188
|
+
8
|
175
189
|
x
|
176
|
-
|
177
|
-
|
190
|
+
10
|
191
|
+
initialize
|
178
192
|
M
|
179
193
|
1
|
180
194
|
n
|
181
195
|
n
|
182
196
|
x
|
183
|
-
|
184
|
-
|
197
|
+
10
|
198
|
+
initialize
|
185
199
|
i
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
7
|
200
|
+
10
|
201
|
+
44
|
202
|
+
43
|
190
203
|
0
|
204
|
+
78
|
191
205
|
49
|
192
206
|
1
|
193
207
|
1
|
194
|
-
|
195
|
-
12
|
196
|
-
1
|
197
|
-
8
|
198
|
-
14
|
199
|
-
3
|
200
|
-
11
|
201
|
-
15
|
202
|
-
5
|
203
|
-
48
|
204
|
-
2
|
205
|
-
56
|
206
|
-
3
|
207
|
-
50
|
208
|
-
4
|
209
|
-
0
|
210
|
-
15
|
208
|
+
38
|
211
209
|
2
|
212
210
|
11
|
213
211
|
I
|
214
|
-
|
212
|
+
2
|
215
213
|
I
|
216
|
-
|
214
|
+
0
|
217
215
|
I
|
218
|
-
|
216
|
+
0
|
219
217
|
I
|
220
|
-
|
218
|
+
0
|
219
|
+
I
|
220
|
+
0
|
221
221
|
n
|
222
222
|
p
|
223
|
+
3
|
224
|
+
x
|
225
|
+
4
|
226
|
+
Hash
|
227
|
+
x
|
228
|
+
16
|
229
|
+
new_from_literal
|
230
|
+
x
|
231
|
+
8
|
232
|
+
@waiting
|
233
|
+
p
|
234
|
+
5
|
235
|
+
I
|
236
|
+
-1
|
237
|
+
I
|
238
|
+
4
|
239
|
+
I
|
240
|
+
0
|
241
|
+
I
|
223
242
|
5
|
243
|
+
I
|
244
|
+
a
|
224
245
|
x
|
225
|
-
|
226
|
-
|
246
|
+
50
|
247
|
+
/Users/tony/src/celluloid/lib/celluloid/signals.rb
|
248
|
+
p
|
249
|
+
0
|
227
250
|
x
|
228
|
-
|
229
|
-
|
251
|
+
17
|
252
|
+
method_visibility
|
253
|
+
x
|
254
|
+
15
|
255
|
+
add_defn_method
|
230
256
|
x
|
231
257
|
4
|
232
|
-
|
258
|
+
wait
|
233
259
|
M
|
234
260
|
1
|
235
|
-
|
236
|
-
2
|
237
|
-
x
|
238
|
-
9
|
239
|
-
for_block
|
240
|
-
t
|
261
|
+
n
|
241
262
|
n
|
242
263
|
x
|
243
|
-
|
244
|
-
|
264
|
+
4
|
265
|
+
wait
|
245
266
|
i
|
246
|
-
|
247
|
-
|
248
|
-
19
|
267
|
+
50
|
268
|
+
39
|
249
269
|
0
|
250
|
-
15
|
251
|
-
5
|
252
270
|
20
|
253
271
|
0
|
254
|
-
|
272
|
+
14
|
273
|
+
2
|
255
274
|
49
|
256
|
-
0
|
257
275
|
1
|
258
|
-
21
|
259
276
|
1
|
277
|
+
13
|
278
|
+
10
|
279
|
+
24
|
280
|
+
15
|
281
|
+
35
|
260
282
|
0
|
261
|
-
|
262
|
-
|
283
|
+
13
|
284
|
+
18
|
285
|
+
3
|
263
286
|
49
|
264
|
-
|
287
|
+
2
|
288
|
+
2
|
289
|
+
15
|
290
|
+
8
|
291
|
+
28
|
292
|
+
18
|
293
|
+
2
|
294
|
+
16
|
295
|
+
2
|
296
|
+
19
|
265
297
|
1
|
266
|
-
|
298
|
+
15
|
299
|
+
20
|
267
300
|
1
|
268
|
-
|
269
|
-
|
301
|
+
45
|
302
|
+
3
|
303
|
+
4
|
304
|
+
49
|
305
|
+
5
|
306
|
+
0
|
307
|
+
49
|
308
|
+
6
|
270
309
|
1
|
271
|
-
|
272
|
-
|
310
|
+
15
|
311
|
+
45
|
273
312
|
3
|
274
|
-
|
313
|
+
7
|
314
|
+
49
|
315
|
+
8
|
316
|
+
0
|
275
317
|
11
|
276
318
|
I
|
277
|
-
|
319
|
+
6
|
278
320
|
I
|
279
|
-
|
321
|
+
2
|
280
322
|
I
|
281
323
|
1
|
282
324
|
I
|
325
|
+
0
|
326
|
+
I
|
283
327
|
1
|
284
328
|
n
|
285
329
|
p
|
286
|
-
|
330
|
+
9
|
331
|
+
x
|
332
|
+
8
|
333
|
+
@waiting
|
287
334
|
x
|
288
335
|
2
|
289
336
|
[]
|
290
337
|
x
|
291
338
|
3
|
292
|
-
|
293
|
-
p
|
294
|
-
3
|
295
|
-
I
|
296
|
-
0
|
297
|
-
I
|
298
|
-
6
|
299
|
-
I
|
300
|
-
1d
|
339
|
+
[]=
|
301
340
|
x
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
1
|
341
|
+
5
|
342
|
+
Fiber
|
343
|
+
n
|
306
344
|
x
|
307
|
-
|
345
|
+
7
|
346
|
+
current
|
347
|
+
x
|
348
|
+
2
|
349
|
+
<<
|
308
350
|
n
|
309
351
|
x
|
310
352
|
5
|
311
|
-
|
353
|
+
yield
|
312
354
|
p
|
313
355
|
9
|
314
356
|
I
|
315
357
|
-1
|
316
358
|
I
|
317
|
-
|
359
|
+
9
|
318
360
|
I
|
319
361
|
0
|
320
362
|
I
|
321
|
-
|
363
|
+
a
|
322
364
|
I
|
323
|
-
|
365
|
+
1f
|
324
366
|
I
|
325
|
-
|
367
|
+
b
|
326
368
|
I
|
327
|
-
|
369
|
+
2b
|
328
370
|
I
|
329
|
-
|
371
|
+
c
|
330
372
|
I
|
331
|
-
|
373
|
+
32
|
332
374
|
x
|
333
|
-
|
334
|
-
/Users/tony/src/celluloid/lib/celluloid/
|
375
|
+
50
|
376
|
+
/Users/tony/src/celluloid/lib/celluloid/signals.rb
|
335
377
|
p
|
336
|
-
|
337
|
-
x
|
338
|
-
3
|
339
|
-
obj
|
378
|
+
2
|
340
379
|
x
|
341
|
-
|
342
|
-
|
380
|
+
4
|
381
|
+
name
|
343
382
|
x
|
344
|
-
|
345
|
-
|
383
|
+
6
|
384
|
+
fibers
|
346
385
|
x
|
347
|
-
|
348
|
-
|
386
|
+
4
|
387
|
+
send
|
349
388
|
M
|
350
389
|
1
|
351
390
|
n
|
352
391
|
n
|
353
392
|
x
|
354
|
-
|
355
|
-
|
393
|
+
4
|
394
|
+
send
|
356
395
|
i
|
357
|
-
|
358
|
-
|
359
|
-
|
396
|
+
38
|
397
|
+
23
|
398
|
+
1
|
399
|
+
10
|
400
|
+
8
|
401
|
+
1
|
402
|
+
19
|
403
|
+
1
|
404
|
+
15
|
405
|
+
39
|
360
406
|
0
|
407
|
+
20
|
361
408
|
0
|
362
|
-
|
363
|
-
|
409
|
+
49
|
410
|
+
1
|
364
411
|
1
|
365
|
-
|
366
|
-
|
412
|
+
19
|
413
|
+
2
|
414
|
+
15
|
415
|
+
20
|
367
416
|
2
|
368
|
-
|
369
|
-
|
417
|
+
9
|
418
|
+
25
|
370
419
|
1
|
371
|
-
|
420
|
+
8
|
421
|
+
27
|
422
|
+
1
|
423
|
+
11
|
424
|
+
15
|
425
|
+
20
|
426
|
+
2
|
427
|
+
56
|
428
|
+
2
|
429
|
+
50
|
430
|
+
3
|
431
|
+
0
|
432
|
+
15
|
372
433
|
2
|
373
434
|
11
|
374
435
|
I
|
375
|
-
|
436
|
+
5
|
437
|
+
I
|
438
|
+
3
|
439
|
+
I
|
440
|
+
1
|
376
441
|
I
|
377
442
|
0
|
378
443
|
I
|
444
|
+
2
|
445
|
+
n
|
446
|
+
p
|
447
|
+
4
|
448
|
+
x
|
449
|
+
8
|
450
|
+
@waiting
|
451
|
+
x
|
452
|
+
6
|
453
|
+
delete
|
454
|
+
M
|
455
|
+
1
|
456
|
+
p
|
457
|
+
2
|
458
|
+
x
|
459
|
+
9
|
460
|
+
for_block
|
461
|
+
t
|
462
|
+
n
|
463
|
+
x
|
464
|
+
4
|
465
|
+
send
|
466
|
+
i
|
467
|
+
13
|
468
|
+
57
|
469
|
+
19
|
379
470
|
0
|
471
|
+
15
|
472
|
+
20
|
473
|
+
0
|
474
|
+
21
|
475
|
+
1
|
476
|
+
1
|
477
|
+
49
|
478
|
+
0
|
479
|
+
1
|
480
|
+
11
|
481
|
+
I
|
482
|
+
4
|
483
|
+
I
|
484
|
+
1
|
485
|
+
I
|
486
|
+
1
|
380
487
|
I
|
381
488
|
0
|
489
|
+
I
|
490
|
+
1
|
382
491
|
n
|
383
492
|
p
|
493
|
+
1
|
494
|
+
x
|
495
|
+
6
|
496
|
+
resume
|
497
|
+
p
|
384
498
|
3
|
499
|
+
I
|
500
|
+
0
|
501
|
+
I
|
502
|
+
15
|
503
|
+
I
|
504
|
+
d
|
505
|
+
x
|
506
|
+
50
|
507
|
+
/Users/tony/src/celluloid/lib/celluloid/signals.rb
|
508
|
+
p
|
509
|
+
1
|
385
510
|
x
|
386
511
|
5
|
387
|
-
|
512
|
+
fiber
|
388
513
|
x
|
389
514
|
4
|
390
|
-
|
391
|
-
x
|
392
|
-
7
|
393
|
-
inspect
|
515
|
+
each
|
394
516
|
p
|
395
|
-
|
517
|
+
13
|
396
518
|
I
|
397
519
|
-1
|
398
520
|
I
|
399
|
-
|
521
|
+
11
|
522
|
+
I
|
523
|
+
8
|
524
|
+
I
|
525
|
+
12
|
526
|
+
I
|
527
|
+
12
|
528
|
+
I
|
529
|
+
13
|
530
|
+
I
|
531
|
+
1b
|
400
532
|
I
|
401
533
|
0
|
402
534
|
I
|
403
|
-
|
535
|
+
1c
|
404
536
|
I
|
405
|
-
|
537
|
+
15
|
538
|
+
I
|
539
|
+
24
|
540
|
+
I
|
541
|
+
16
|
542
|
+
I
|
543
|
+
26
|
406
544
|
x
|
407
|
-
|
408
|
-
/Users/tony/src/celluloid/lib/celluloid/
|
409
|
-
p
|
410
|
-
0
|
545
|
+
50
|
546
|
+
/Users/tony/src/celluloid/lib/celluloid/signals.rb
|
411
547
|
p
|
548
|
+
3
|
549
|
+
x
|
550
|
+
4
|
551
|
+
name
|
552
|
+
x
|
412
553
|
5
|
554
|
+
value
|
555
|
+
x
|
556
|
+
6
|
557
|
+
fibers
|
558
|
+
p
|
559
|
+
7
|
413
560
|
I
|
414
561
|
2
|
415
562
|
I
|
@@ -417,12 +564,16 @@ I
|
|
417
564
|
I
|
418
565
|
10
|
419
566
|
I
|
420
|
-
|
567
|
+
9
|
421
568
|
I
|
422
569
|
1e
|
570
|
+
I
|
571
|
+
11
|
572
|
+
I
|
573
|
+
2c
|
423
574
|
x
|
424
|
-
|
425
|
-
/Users/tony/src/celluloid/lib/celluloid/
|
575
|
+
50
|
576
|
+
/Users/tony/src/celluloid/lib/celluloid/signals.rb
|
426
577
|
p
|
427
578
|
0
|
428
579
|
x
|
@@ -435,10 +586,10 @@ I
|
|
435
586
|
I
|
436
587
|
3
|
437
588
|
I
|
438
|
-
|
589
|
+
1d
|
439
590
|
x
|
440
|
-
|
441
|
-
/Users/tony/src/celluloid/lib/celluloid/
|
591
|
+
50
|
592
|
+
/Users/tony/src/celluloid/lib/celluloid/signals.rb
|
442
593
|
p
|
443
594
|
0
|
444
595
|
x
|
@@ -453,7 +604,7 @@ I
|
|
453
604
|
I
|
454
605
|
1c
|
455
606
|
x
|
456
|
-
|
457
|
-
/Users/tony/src/celluloid/lib/celluloid/
|
607
|
+
50
|
608
|
+
/Users/tony/src/celluloid/lib/celluloid/signals.rb
|
458
609
|
p
|
459
610
|
0
|