@@ -21,7 +21,7 @@ defmodule Broadcaster do
21
21
@ doc """
22
22
Starts the broadcaster.
23
23
"""
24
- def start_link ( ) do
24
+ def start_link ( _args ) do
25
25
GenStage . start_link ( __MODULE__ , :ok , name: __MODULE__ )
26
26
end
27
27
@@ -64,7 +64,7 @@ defmodule Consumer do
64
64
65
65
use GenStage
66
66
67
- def start_link ( ) do
67
+ def start_link ( _args ) do
68
68
GenStage . start_link ( __MODULE__ , :ok )
69
69
end
70
70
87
87
defmodule App do
88
88
@ moduledoc """
89
89
Your application entry-point.
90
-
91
- For actual applications, start/0 should be start/2.
92
90
"""
91
+ use Supervisor
93
92
94
- def start do
95
- import Supervisor.Spec
96
-
93
+ @ impl true
94
+ def init ( _arg ) do
97
95
children = [
98
- worker ( Broadcaster , [ ] ) ,
99
- worker ( Consumer , [ ] , id: 1 ) ,
100
- worker ( Consumer , [ ] , id: 2 ) ,
101
- worker ( Consumer , [ ] , id: 3 ) ,
102
- worker ( Consumer , [ ] , id: 4 )
96
+ Supervisor . child_spec ( { Broadcaster , [ ] } , id: 1 ) ,
97
+ Supervisor . child_spec ( { Consumer , [ ] } , id: 2 ) ,
98
+ Supervisor . child_spec ( { Consumer , [ ] } , id: 3 ) ,
99
+ Supervisor . child_spec ( { Consumer , [ ] } , id: 4 ) ,
100
+ Supervisor . child_spec ( { Consumer , [ ] } , id: 5 ) ,
103
101
]
104
102
105
103
Supervisor . start_link ( children , strategy: :one_for_one )
106
104
end
107
105
end
108
106
109
107
# Start the app
110
- App . start
108
+ App . init ( 0 )
111
109
112
110
# Broadcast events
113
111
Broadcaster . sync_notify ( 1 )
@@ -117,4 +115,4 @@ Broadcaster.sync_notify(4)
117
115
Broadcaster . sync_notify ( 5 )
118
116
119
117
# Wait for them to be printed
120
- Process . sleep ( 2000 )
118
+ Process . sleep ( 2000 )
0 commit comments