Multi-Producer Single-Consumer Event Queue
Problem Implement a multiple-producer, single-consumer (MPSC) event queue that merges events from several producer threads while a single consumer drains them in order, handling edge cases like an empty queue and bursts.
Input / Output
- Input: concurrent
push(event)calls from multiple producer threads. - Output: a single consumer draining events with no losses and no data races.
Constraints
- Thread-safe; no lost or duplicated events.
- Handle the empty-queue (consumer waits) and burst (producers outpace consumer) cases.
Example
- Several producers push events concurrently; the consumer drains them, blocking when empty and coping with bursts.
added …