Implementation

Server must keep a time associated with freed handles. Groups of handles can be put together with a single time, because our space is big enough that this shouldn't be a problem. This will need to be written to disk so that this policy can be upheld in the face of a restart.

We should do the math on how long we should wait, work out the specifics of what goes to disk (how it goes to disk doesn't have to be here).

On the client side, we will want the ability to get control to the client code even if there aren't ops to perform. This could be a function call, or there could be a thread in the client code, or maybe the client code is its own entity (e.g. pvfsd). All options to list here.