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