def watchdog(self): """This function runs a multiprocessing queue so that each arduino handler won't lock while waiting from info to be done """ global DAEMON_RUNNING while DAEMON_RUNNING: #self.cv.acquire() try: #self.cv.wait(10) for (id, arduino) in self.arduino_handlers.iteritems(): if not arduino.in_queue.empty(): msg = arduino.in_queue.get() print 'There is info on the arduino#%s query!' % id print ' Handling info: %s' % msg for listener in arduino.getListeners(): print ' Sending to listener %s' % listener new_process = multiprocessing.Process( target=listener.recv_msg, args=(msg, arduino.out_queue.put_nowait)) new_process.daemonic = True new_process.start() except KeyboardInterrupt: DAEMON_RUNNING = False finally: #self.cv.release() pass time.sleep(0.001) pass
def watchdog(self): """This function runs a multiprocessing queue so that each arduino handler won't lock while waiting from info to be done """ global DAEMON_RUNNING while DAEMON_RUNNING: #self.cv.acquire() try: #self.cv.wait(10) for (id,arduino) in self.arduino_handlers.iteritems(): if not arduino.in_queue.empty(): msg = arduino.in_queue.get() print 'There is info on the arduino#%s query!' % id print ' Handling info: %s' % msg for listener in arduino.getListeners(): print ' Sending to listener %s' % listener new_process = multiprocessing.Process(target=listener.recv_msg, args=(msg, arduino.out_queue.put_nowait)) new_process.daemonic = True new_process.start() except KeyboardInterrupt: DAEMON_RUNNING = False finally: #self.cv.release() pass time.sleep(0.001) pass
def loop(self): """This function runs a multiprocessing queue so that each arduino handler won't lock while waiting from info to be done """ global DAEMON_RUNNING pool = multiprocessing.Pool(processes=6) while DAEMON_RUNNING: self.cv.acquire() try: self.cv.wait(10) for (id,arduino) in self.arduino_handlers.iteritems(): if not arduino.in_queue.empty(): for listener in arduino.getListeners(): pool.apply_async(listener.recv_msg, [msg, arduino.in_queue]) except KeyboardInterrupt: DAEMON_RUNNING = False finally: self.cv.release() pass
def loop(self): """This function runs a multiprocessing queue so that each arduino handler won't lock while waiting from info to be done """ global DAEMON_RUNNING pool = multiprocessing.Pool(processes=6) while DAEMON_RUNNING: self.cv.acquire() try: self.cv.wait(10) for (id, arduino) in self.arduino_handlers.iteritems(): if not arduino.in_queue.empty(): for listener in arduino.getListeners(): pool.apply_async(listener.recv_msg, [msg, arduino.in_queue]) except KeyboardInterrupt: DAEMON_RUNNING = False finally: self.cv.release() pass