Only fire events once Events.STARTUP has been seen
One part of fixing #2090
This commit is contained in:
parent
c33e9e4c85
commit
f77be701a2
1 changed files with 27 additions and 2 deletions
|
|
@ -132,9 +132,11 @@ class EventManager(object):
|
|||
self._registeredListeners = collections.defaultdict(list)
|
||||
self._logger = logging.getLogger(__name__)
|
||||
|
||||
self._startup_signaled = False
|
||||
self._shutdown_signaled = False
|
||||
|
||||
self._queue = queue.Queue()
|
||||
self._held_back = queue.Queue()
|
||||
|
||||
self._worker = threading.Thread(target=self._work)
|
||||
self._worker.daemon = True
|
||||
|
|
@ -177,7 +179,30 @@ class EventManager(object):
|
|||
payload being a payload object specific to the event.
|
||||
"""
|
||||
|
||||
self._queue.put((event, payload))
|
||||
send_held_back = False
|
||||
if event == Events.STARTUP:
|
||||
self._logger.info("Processing startup event, this is our first event")
|
||||
self._startup_signaled = True
|
||||
send_held_back = True
|
||||
|
||||
self._enqueue(event, payload)
|
||||
|
||||
if send_held_back:
|
||||
self._logger.info("Adding {} events to queue that "
|
||||
"were held back before startup event".format(self._held_back.qsize()))
|
||||
while True:
|
||||
try:
|
||||
self._queue.put(self._held_back.get())
|
||||
except queue.Empty:
|
||||
break
|
||||
|
||||
def _enqueue(self, event, payload):
|
||||
if self._startup_signaled:
|
||||
q = self._queue
|
||||
else:
|
||||
q = self._held_back
|
||||
|
||||
q.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"
|
||||
|
|
@ -185,7 +210,7 @@ class EventManager(object):
|
|||
import copy
|
||||
legacy_payload = copy.deepcopy(payload)
|
||||
legacy_payload["type"] = "gcode"
|
||||
self._queue.put((event, legacy_payload))
|
||||
q.put((event, legacy_payload))
|
||||
|
||||
def subscribe(self, event, callback):
|
||||
"""
|
||||
|
|
|
|||
Loading…
Reference in a new issue