14
14
15
15
-module (tau_keepalive ).
16
16
17
- -export ([start /1 , init /1 , loop /1 ]).
17
+ -export ([start_link /1 , init /1 , loop /1 ]).
18
18
19
- start (DaemonPortNum ) ->
20
- spawn (? MODULE , init , [DaemonPortNum ]).
19
+ start_link (DaemonPortNum ) ->
20
+ spawn_link (? MODULE , init , [DaemonPortNum ]).
21
21
22
22
init (DaemonPortNum ) ->
23
23
logger :info (" connecting to Daemon via TCP..." , []),
24
24
{ok , DaemonSocket } = gen_tcp :connect ({127 ,0 ,0 ,1 }, DaemonPortNum , [
25
25
binary ,
26
26
{active , true },
27
27
{packet , 4 },
28
- {keepalive , true }
28
+ {keepalive , false }
29
29
]),
30
30
OSPid = os :getpid (),
31
31
PidMsg = osc :encode ([" /tau_pid" , OSPid ]),
32
32
logger :info (" Sending Pid ~p to Daemon..." , [OSPid ]),
33
33
gen_tcp :send (DaemonSocket , PidMsg ),
34
- KillSwitch = erlang :start_timer (5000 , self (), trigger_kill_switch ),
34
+ KillSwitch = erlang :send_after (5000 , self (), trigger_kill_switch ),
35
35
logger :info (" Waiting for keepalive messages..." ),
36
36
loop (KillSwitch ).
37
37
@@ -41,8 +41,8 @@ loop(KillSwitch) ->
41
41
try osc :decode (Bin ) of
42
42
{cmd , [" /system/keepalive" ]} ->
43
43
logger :debug (" Received keepalive message from Daemon" , []),
44
- erlang :cancel_timer (KillSwitch ),
45
- NewKillSwitch = erlang :start_timer (5000 , self (), trigger_kill_switch ),
44
+ ok = erlang :cancel_timer (KillSwitch , [{ async , true }, { info , false }] ),
45
+ NewKillSwitch = erlang :send_after (5000 , self (), trigger_kill_switch ),
46
46
? MODULE :loop (NewKillSwitch );
47
47
Other ->
48
48
logger :error (" Unexpected message from Daemon:~p " , [Other ]),
@@ -53,7 +53,7 @@ loop(KillSwitch) ->
53
53
[Bin , Class , Term , Trace ]),
54
54
? MODULE :loop (KillSwitch )
55
55
end ;
56
- { timeout , _Timer , trigger_kill_switch } ->
56
+ trigger_kill_switch ->
57
57
logger :info (" Tau kill switch activated. Shutting down...." , []),
58
58
init :stop ();
59
59
Any ->
0 commit comments