fn destroy(self: *BufferedAtomicFile) void
always call destroy, even after successful finish()
self: *BufferedAtomicFile,