def say(self, *args): if len(self.say_queue) >= MAX_QUEUE_LENGTH: raise Exception("Say-Queue Full!") d = Deferred() d.to_speek = args self.say_queue.append(d) # If the say_queue was empty, start the queue processor again if self.say_queue == [d]: self.process_say_queue() return d