8ec23a95d5
The task would stop when the receiver is closed; for the receiver to be closed, the sender ought to be closed too. Because the sender lives in `EventCacheInner`, and the task would hold onto an `EventCacheInner` struct, the sender would never be dropped, so the full `EventCacheInner` would leak, as a result.