tstorage/blockchain: use os.replace - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit bddea809ecb66f310a27edf906f38776bf30e02a DIR parent 863ee984fee7931c94467c92934caf19f2ec1949 HTML Author: SomberNight <somber.night@protonmail.com> Date: Fri, 30 Nov 2018 04:08:02 +0100 storage/blockchain: use os.replace Diffstat: M electrum/blockchain.py | 6 +----- M electrum/storage.py | 7 +------ 2 files changed, 2 insertions(+), 11 deletions(-) --- DIR diff --git a/electrum/blockchain.py b/electrum/blockchain.py t@@ -352,11 +352,7 @@ class Blockchain(util.PrintError): self._forkpoint_hash, parent._forkpoint_hash = parent._forkpoint_hash, hash_raw_header(bh2u(parent_data[:HEADER_SIZE])) self._prev_hash, parent._prev_hash = parent._prev_hash, self._prev_hash # parent's new name - try: - os.rename(child_old_name, parent.path()) - except OSError: - os.remove(parent.path()) - os.rename(child_old_name, parent.path()) + os.replace(child_old_name, parent.path()) self.update_size() parent.update_size() # update pointers DIR diff --git a/electrum/storage.py b/electrum/storage.py t@@ -122,12 +122,7 @@ class JsonDB(PrintError): os.fsync(f.fileno()) mode = os.stat(self.path).st_mode if os.path.exists(self.path) else stat.S_IREAD | stat.S_IWRITE - # perform atomic write on POSIX systems - try: - os.rename(temp_path, self.path) - except OSError: - os.remove(self.path) - os.rename(temp_path, self.path) + os.replace(temp_path, self.path) os.chmod(self.path, mode) self.print_error("saved", self.path) self.modified = False