vinyl: implement quota wait queue without fiber_cond
Using fiber_cond as a wait queue isn't very convenient, because: - It doesn't allow us to put a spuriously woken up fiber back to the same position in the queue where it was, thus violating fairness. - It doesn't allow us to check whether we actually need to wake up a fiber or it will have to go back to sleep anyway as it needs more memory than currently available. - It doesn't allow us to implement a multi-queue approach where fibers that have different priorities are put to different queues. So let's rewrite the wait queue with plain rlist and fiber_yield. Needed for #1862
Loading
Please register or sign in to comment