Rc Coroutine
A reference counted coroutine.
Only one job is started per key. start may be called multiple times. done must be called the same number of times as start in order for the job to be cancelled. Calling cancel will also cancel the job and clear the key.
Use this when you want to coalesce multiple “requests” under the same key into a single running coroutine, and automatically tear it down once everyone’s signaled they’re done.