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.