code: def _packet_loop(self):
          
          while not self._is_stopped.is_set():
              if self.inbox.empty() and \
                      not self.new_packet.wait(self._packet_wait):
                  continue
              ip, port, packet = self.inbox.get()
  
              if self.inbox.empty():
                  self.new_packet.clear()
  
              self._do_packet(packet, ip, port)
docs: Loop (while running) the inbox and handle incoming packages
  
          :rtype: None