code: def push_results(self, kill_event):
          
  
          # We set this timeout so that the thread checks the kill_event and does not
          # block forever on the internal result queue
          timeout = 0.1
          # timer = time.time()
          logger.debug("[RESULT_PUSH_THREAD] Starting thread")
  
          while not kill_event.is_set():
              time.sleep(LOOP_SLOWDOWN)
              try:
                  items = []
                  while not self.pending_result_queue.empty():
                      r = self.pending_result_queue.get(block=True)
                      items.append(r)
                  if items:
                      self.result_outgoing.send_multipart(items)
  
              except queue.Empty:
                  logger.debug("[RESULT_PUSH_THREAD] No results to send in past {}seconds".format(timeout))
  
              except Exception as e:
                  logger.exception("[RESULT_PUSH_THREAD] Got an exception : {}".format(e))
  
          logger.critical("[RESULT_PUSH_THREAD] Exiting")
docs: Listens on the pending_result_queue and sends out results via 0mq
  
          Parameters:
          -----------
          kill_event : threading.Event
                Event to let the thread know when it is time to die.