File tree Expand file tree Collapse file tree 2 files changed +11
-12
lines changed
lib/concurrent/actor/behaviour Expand file tree Collapse file tree 2 files changed +11
-12
lines changed Original file line number Diff line number Diff line change @@ -17,13 +17,13 @@ def initialize(core, subsequent)
17
17
def on_envelope ( envelope )
18
18
case envelope . message
19
19
when :pause!
20
- from_supervisor? ( envelope ) { pause! }
20
+ pause!
21
21
when :resume!
22
- from_supervisor? ( envelope ) { resume! }
22
+ resume!
23
23
when :reset!
24
- from_supervisor? ( envelope ) { reset! }
24
+ reset!
25
25
when :restart!
26
- from_supervisor? ( envelope ) { restart! }
26
+ restart!
27
27
else
28
28
if @paused
29
29
@buffer << envelope
@@ -34,14 +34,6 @@ def on_envelope(envelope)
34
34
end
35
35
end
36
36
37
- def from_supervisor? ( envelope )
38
- if behaviour! ( Supervised ) . supervisor == envelope . sender
39
- yield
40
- else
41
- false
42
- end
43
- end
44
-
45
37
def pause! ( error = nil )
46
38
@paused = true
47
39
broadcast ( error || :paused )
Original file line number Diff line number Diff line change @@ -20,6 +20,13 @@ def on_envelope(envelope)
20
20
supervisor
21
21
when :un_supervise
22
22
un_supervise envelope . sender
23
+ when :pause! , :resume! , :reset! , :restart!
24
+ # allow only supervisor to control the actor
25
+ if @supervisor == envelope . sender
26
+ pass envelope
27
+ else
28
+ false
29
+ end
23
30
else
24
31
pass envelope
25
32
end
You can’t perform that action at this time.
0 commit comments