A while back, I wrote a small utility struct called AccessNotifier which
uses (abuses?) the DerefMut trait to allow Futures to easily wake each
other based on mutable access to data.
I've been talking to the async-rs folks (the people behind async-std)
and they'll be adopting that struct as the first component of
async-utils. Please feel free to comment on my PR here.