Skip to main content

in_short_holds

Function in_short_holds 

Source
fn in_short_holds<I: Iterator>(
    memory: &Path,
    items: I,
    each: impl FnMut(I::Item),
) -> Result<(), (String, Peekable<I>)>
Expand description

each done for every one of items under the exchanges’ lock, a fifth of a second at a time (SHORT_HOLD), the lock then left free a moment (PUT_BACK_FREE) for whatever exchange waits for it, a dose’s first, and taken again for the rest: work that grows with a count of files never keeps an exchange waiting for its whole. An exchange may run between two holds: each looks again at what it does under its own hold. A hold passes its fifth of a second by the one item it does then, at most, and ends after the item it does when an exchange of this process comes to wait (waiting_here): a dose’s alarm waits for one item, not the hold’s rest. The lock that cannot be taken stops it: why, and the items left.