def SendCommandWithId(self, func, data, handler, timeout=2.0): raw = zmessage.MakeRawMessageWithId(func, data) mesg = zmessage.Message(raw, self.Priority(), handler, -1, timeout=timeout) self._mq.SendMessage(mesg)
def WaitUntilAllPreviousMessagesHaveBeenHandled(self): lock: threading.Lock = threading.Lock() lock.acquire() # send dummy message to clear out pipe mesg = zmessage.Message(None, zmessage.LowestPriority(), lambda _: lock.release(), None) self.SendMessage(mesg) # wait until semaphore is released by callback lock.acquire()
def SendCommandWithIdNoResponse(self, func, data, timeout=2.0): raw = zmessage.MakeRawMessageWithId(func, data) mesg = zmessage.Message(raw, self.Priority(), None, -1, timeout=timeout, action_requ=[zmessage.ACTION_NONE], action_resp=[zmessage.ACTION_NONE]) self._mq.SendMessage(mesg)
def Terminate(self): """ Terminate shuts down the driver object. """ lock = threading.Lock() lock.acquire() def cb(_): self._terminate = True lock.release() # send listeners signal to shutdown self._in_queue.put((time.time(), None)) self.SendMessage( zmessage.Message(None, zmessage.LowestPriority(), cb, None)) lock.acquire() logging.info("Driver terminated")
def _SendMessageMulti(self, nn, m, priority: tuple, handler): mesg = zmessage.Message(m, priority, handler, nn[0]) self._driver.SendMessage(mesg)
def _SendMessage(self, n: int, m, priority: tuple, handler): mesg = zmessage.Message(m, priority, handler, n) self._driver.SendMessage(mesg)
def SendBarrierCommand(self, handler): logging.warning("SendBarrierCommand") """Dummy Command to invoke the handler when all previous commands are done""" mesg = zmessage.Message(None, self.Priority(), handler, None) self._mq.SendMessage(mesg)
def SendCommand(self, func, data, handler): raw = zmessage.MakeRawMessage(func, data) mesg = zmessage.Message(raw, self.Priority(), handler, -1) self._mq.SendMessage(mesg)