sml: Delay freeing of trimmed segments always
sml_trimstore() already delays freeing of a replaced last, smaller segment for the reallocation case at the bottom of the function: Because a concurrently running iterator might have already taken a reference on a to-be-replaced segment, it can not be freed immediately, but rather is kept around until the busy object is no more. This trivial change applies the same also for a segment which turns out to be unneeded because writing the object ended with a zero length in this segment. Simple, but consequential, see next commit
Showing
Please register or sign in to comment