this should probably use a real (eventlet) queue instead. you can do a blocking wait on the queue in a `while True` loop, and use a push a sentinel value (e.g. `None`) onto the queue to signal stop and break out of the loop