File tree Expand file tree Collapse file tree 3 files changed +17
-2
lines changed Expand file tree Collapse file tree 3 files changed +17
-2
lines changed Original file line number Diff line number Diff line change @@ -26,6 +26,8 @@ module Actress
26
26
require 'concurrent/actress/core'
27
27
require 'concurrent/actress/context'
28
28
29
+ require 'concurrent/actress/ad_hoc'
30
+
29
31
# @return [Reference, nil] current executing actor if any
30
32
def self . current
31
33
Thread . current [ :__current_actress__ ]
Original file line number Diff line number Diff line change
1
+ module Concurrent
2
+ module Actress
3
+ class AdHoc
4
+ include Context
5
+ def initialize ( &initializer )
6
+ @on_message = Type! initializer . call , Proc
7
+ end
8
+
9
+ def on_message ( message )
10
+ @on_message . call message
11
+ end
12
+ end
13
+ end
14
+ end
Original file line number Diff line number Diff line change @@ -16,7 +16,7 @@ def on_message(message)
16
16
when :terminate
17
17
terminate!
18
18
when :child
19
- Ping . spawn :pong , @queue
19
+ Concurrent :: Actress :: AdHoc . spawn ( :pong ) { -> m { @queue << m } }
20
20
else
21
21
@queue << message
22
22
message
@@ -43,7 +43,6 @@ def assert condition
43
43
end
44
44
45
45
46
-
47
46
Array . new ( 100 ) . map do
48
47
Thread . new do
49
48
20 . times do |i |
You can’t perform that action at this time.
0 commit comments