From 5c8c780697ca1466697b26f581660d1891ee49b0 Mon Sep 17 00:00:00 2001 From: Valentine Wallace Date: Tue, 16 Feb 2021 22:06:05 -0500 Subject: [PATCH] use ReplaceFileW --- lightning-persister/src/util.rs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lightning-persister/src/util.rs b/lightning-persister/src/util.rs index 5818368d..9dd9ddb9 100644 --- a/lightning-persister/src/util.rs +++ b/lightning-persister/src/util.rs @@ -70,7 +70,7 @@ pub(crate) fn write_to_file(path: String, filename: String, da let dir_file = fs::OpenOptions::new().read(true).open(path)?; unsafe { libc::fsync(dir_file.as_raw_fd()); } } - std::thread::sleep(std::time::Duration::new(5, 0)); + // std::thread::sleep(std::time::Duration::new(60, 0)); #[cfg(target_os = "windows")] { println!("VMW: entries in dir:"); @@ -95,11 +95,15 @@ pub(crate) fn write_to_file(path: String, filename: String, da // println!("VMW: about to rename"); // let src = PathBuf::from(tmp_filename); // let dst = PathBuf::from(filename_with_path); - fs::rename(&tmp_filename.clone(), &filename_with_path.clone())?; + // fs::rename(&tmp_filename.clone(), &filename_with_path.clone())?; // call!(unsafe {winapi::um::winbase::MoveFileExW( // path_to_windows_str(src).as_ptr(), path_to_windows_str(dst).as_ptr(), // winapi::um::winbase::MOVEFILE_WRITE_THROUGH | winapi::um::winbase::MOVEFILE_REPLACE_EXISTING // )}); + call!(unsafe {winapi::um::winbase::ReplaceFileW( + path_to_windows_str(src).as_ptr(), path_to_windows_str(dst).as_ptr(), std::ptr::null, + winapi::um::winbase::MOVEFILE_WRITE_THROUGH | winapi::um::winbase::MOVEFILE_REPLACE_EXISTING, std::ptr::null, std::ptr::null + )}); println!("VMW: renamed"); } Ok(()) -- 2.30.2