From 36ec9c4741e70585b36f620c21d937a3d5759071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Wed, 1 Jun 2016 10:29:47 +0200 Subject: [PATCH] Do not sort events in the event queue alphabetically This should never have been a PriorityQueue, or at the very least it should never have the data itself in a sortable structure. Thanks to processing speed of the event queue that seldomly showed, only in cases where two events entered the queue almost simultanously, e.g. when starting to render a timelapse movie and immediately failing. Should solve #1343 --- src/octoprint/events.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/octoprint/events.py b/src/octoprint/events.py index 2cc765d9..36e48843 100644 --- a/src/octoprint/events.py +++ b/src/octoprint/events.py @@ -107,7 +107,7 @@ class EventManager(object): self._registeredListeners = collections.defaultdict(list) self._logger = logging.getLogger(__name__) - self._queue = Queue.PriorityQueue() + self._queue = Queue.Queue() self._worker = threading.Thread(target=self._work) self._worker.daemon = True self._worker.start() @@ -115,7 +115,7 @@ class EventManager(object): def _work(self): try: while True: - (event, payload) = self._queue.get(True) + event, payload = self._queue.get(True) eventListeners = self._registeredListeners[event] self._logger.debug("Firing event: %s (Payload: %r)" % (event, payload)) @@ -144,7 +144,7 @@ class EventManager(object): payload being a payload object specific to the event. """ - self._queue.put((event, payload), 0) + self._queue.put((event, payload)) if event == Events.UPDATED_FILES and "type" in payload and payload["type"] == "printables": # when sending UpdatedFiles with type "printables", also send another event with deprecated type "gcode" @@ -152,8 +152,7 @@ class EventManager(object): import copy legacy_payload = copy.deepcopy(payload) legacy_payload["type"] = "gcode" - self._queue.put((event, legacy_payload), 0) - + self._queue.put((event, legacy_payload)) def subscribe(self, event, callback): """