Skip to content

Commit 1b2e921

Browse files
jackwherryMCLiii
authored andcommitted
cause parent to SIGKILL child
1 parent 1540778 commit 1b2e921

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

Backend/core/comms.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@
55
import asyncio
66
import config
77

8+
import signal
9+
import sys
10+
811
from multiprocessing import Process, Manager
912
from multiprocessing.managers import BaseManager
1013
from . import db
@@ -237,17 +240,21 @@ def fs_down_callback(self, data):
237240
continue
238241

239242

240-
def start_comms():
241-
# # create shared telemetry object instance
242-
# BaseManager.register('Telemetry', Telemetry)
243-
# manager = BaseManager()
244-
# manager.start()
245-
# inst = manager.Telemetry()
246243

247-
telemetry = Telemetry()
244+
telemetry = Telemetry()
245+
p = Process(target=sync, args=[telemetry.fs_down_callback])
246+
247+
# kill child process when parent received SIGINT
248+
def sigint_handler(signal, frame):
249+
# must send SIGKILL because child process ignores SIGTERM for unknown reasons
250+
# TODO fix this?????????
251+
p.kill()
252+
sys.exit(0)
248253

254+
signal.signal(signal.SIGINT, sigint_handler)
255+
256+
def start_comms():
249257
# start file sync
250-
p = Process(target=sync, args=[telemetry.fs_down_callback], daemon=True)
251258
p.start()
252259

253260
set_format(config.DATAFORMAT_PATH)

0 commit comments

Comments
 (0)