import logging import multiprocessing from BusClient import BusClient from nodes.Beamformer import Beamformer from nodes.Broker import Broker from nodes.Device import Device from nodes.ImageCV import ImageCV from nodes.Loader import Loader from nodes.MainUI import MainUI from nodes.Robot import Robot from nodes.WebRTC import WebRTC from utils.Msg import KillMsg if __name__ == '__main__': logging.basicConfig(level=logging.INFO) multiprocessing.set_start_method('spawn') multiprocessing.Pool() pps = [] ps = [ Broker(), WebRTC(), MainUI(), Device(level=logging.DEBUG), ImageCV(), Beamformer(), Loader(), Robot(), ] for p in ps: pps.append(multiprocessing.Process(target=p)) for p in pps: p.start() c = BusClient(KillMsg) while True: x: KillMsg = c.recv() if x.name == '': break for p in pps: p.kill()