- when the first handle is returned, it gets added to the
recently_freed list. Because this is the first item on that
list, we check the time.
- now we add more handles to the list. we check the time after N handles are returned and update the timestamp.
- Once we have added H handles, we decide the recently_freed
list has enough handles. We then start using the
overflow_list to hold returned handles.
- as with the recently_freed list, we record the time that
this handle was added, updating the timestamp after every N
additions. We also check how old the recently_freed list is.
- at some point in time, the whole recently_freed list is ready
to be returned to the free_list. The recently_freed
list is merged into the free_list, the overflow_list
becomes the recently_freed list and the overflow_list
is empty.