def queue_put_stoppable(self, q, obj): """ put obj to queue, but will give up if the thread is stopped""" while not self.stopped(): try: q.put(obj, timeout=5) break except queue.Full: pass