Duplicate threads created from rapid log processing
watcher
module: when threaded output is enabled, processing multiple messages with the same channel/world combination in rapid succession may create multiple threads. The last thread created is saved to the world's output
, leaving previous threads as orphans, and any messages within will not be reachable for future reactions.
Example scenarios:
- Forfeit / release sends all remaining items
- Rapid hint sends e.g. for Hollow Knight worlds
Two possible resolutions:
- Queue messages internally such that they are processed serially; or
- Set up all initial threads on module start, such that all channel/world thread IDs are populated before being used