def METHOD_NAME(self, item):
    # keep trying to put an exception on the queue
    # we dont want to do this blocking, since a producer
    # thread might fill this up.
    done = False
    while not done:
        logger.debug('clearing queue')
        while not self.queue.empty():
            self.queue.get(block=False)
        try:
            logger.debug('put %r on queue', item)
            self.queue.put(item, block=False)
            done = True
        except queue.Full:
            logger.debug('retry putting exception on queue, because it was filled')