Skip to content

Commit 236bf06

Browse files
committed
actor: minor supervision example improvements 2
1 parent 989c9fe commit 236bf06

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

doc/actor/supervision_tree.out.rb

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
class Master < Concurrent::Actor::RestartingContext
33
def initialize
4-
# for listener to be child of master
4+
# create listener a supervised child of master
55
@listener = Listener.spawn(name: 'listener1', supervise: true)
66
end
77

@@ -17,7 +17,7 @@ def on_message(msg)
1717
end
1818
end
1919

20-
# TODO turn this into Behaviour and make it default part of RestartingContext
20+
# TODO this should be a part of a behaviour, it ensures that children are restarted/paused etc. when theirs parents are
2121
def on_event(event)
2222
event_name, _ = event
2323
case event_name
@@ -48,25 +48,25 @@ def on_message(msg)
4848
end
4949

5050
master = Master.spawn(name: 'master', supervise: true)
51-
# => #<Concurrent::Actor::Reference:0x7fd443366568 /master (Master)>
51+
# => #<Concurrent::Actor::Reference:0x7fa595899fa8 /master (Master)>
5252
listener = master.ask!(:listener)
53-
# => #<Concurrent::Actor::Reference:0x7fd44335cf68 /master/listener1 (Listener)>
54-
listener.ask!(:number) # => 20
55-
53+
# => #<Concurrent::Actor::Reference:0x7fa5958909d0 /master/listener1 (Listener)>
54+
listener.ask!(:number) # => 12
55+
# crash the listener which is supervised by master, it's restarted automatically reporting a different number
5656
listener.tell(:crash)
57-
# => #<Concurrent::Actor::Reference:0x7fd44335cf68 /master/listener1 (Listener)>
58-
listener.ask!(:number) # => 41
57+
# => #<Concurrent::Actor::Reference:0x7fa5958909d0 /master/listener1 (Listener)>
58+
listener.ask!(:number) # => 65
5959

6060
master << :crash
61-
# => #<Concurrent::Actor::Reference:0x7fd443366568 /master (Master)>
61+
# => #<Concurrent::Actor::Reference:0x7fa595899fa8 /master (Master)>
6262

6363
sleep 0.1 # => 0
6464

65-
# ask for listener again, old one is terminated
65+
# ask for listener again, old one is terminated with master and replaced with new one
6666
listener.ask!(:terminated?) # => true
6767
listener = master.ask!(:listener)
68-
# => #<Concurrent::Actor::Reference:0x7fd4433357b0 /master/listener1 (Listener)>
69-
listener.ask!(:number) # => 12
68+
# => #<Concurrent::Actor::Reference:0x7fa5970d5608 /master/listener1 (Listener)>
69+
listener.ask!(:number) # => 77
7070

7171
master.ask!(:terminate!) # => [[true], true]
7272

0 commit comments

Comments
 (0)