fs/io/FileOutputStream: don't auto-delete file on WIN32
The file handle is never reset to INVALID_HANDLE_VALUE, and thus the destructor will assume the operation shall be cancelled and will delete the temporary file. This was a major breakage for saving the database file and the state file.
This commit is contained in:
@@ -62,6 +62,7 @@ FileOutputStream::Commit(gcc_unused Error &error)
|
||||
assert(IsDefined());
|
||||
|
||||
CloseHandle(handle);
|
||||
handle = INVALID_HANDLE_VALUE;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -71,6 +72,7 @@ FileOutputStream::Cancel()
|
||||
assert(IsDefined());
|
||||
|
||||
CloseHandle(handle);
|
||||
handle = INVALID_HANDLE_VALUE;
|
||||
RemoveFile(path);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user