I can't lock (wait on) mutex inside fiber, because it locks the whole kernel thread, so I've took a condition variable, put it inside atomic box and made a nutex.
The atomic-box-update! implementation is here:
https://git.sr.ht/~abcdw/guile-ares-rs/tree/ca62e9f/src/nrepl/atomic.scm#L24