tdaemon: simplify get_fd_or_server - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit b81feb655043aba16b539b097ade76021f8cb665 DIR parent a9239bd40f2014cb2cc054728fcdb7f680e930bb HTML Author: ThomasV <thomasv@electrum.org> Date: Thu, 15 Aug 2019 09:58:23 +0200 daemon: simplify get_fd_or_server Diffstat: M electrum/daemon.py | 11 ++++++----- M run_electrum | 6 ++++-- 2 files changed, 10 insertions(+), 7 deletions(-) --- DIR diff --git a/electrum/daemon.py b/electrum/daemon.py t@@ -62,7 +62,7 @@ def remove_lockfile(lockfile): os.unlink(lockfile) -def get_fd_or_server(config: SimpleConfig): +def get_file_descriptor(config: SimpleConfig): '''Tries to create the lockfile, using O_EXCL to prevent races. If it succeeds it returns the FD. Otherwise try and connect to the server specified in the lockfile. t@@ -71,12 +71,12 @@ def get_fd_or_server(config: SimpleConfig): lockfile = get_lockfile(config) while True: try: - return os.open(lockfile, os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0o644), None + return os.open(lockfile, os.O_CREAT | os.O_EXCL | os.O_WRONLY, 0o644) except OSError: pass server = get_server(config) if server is not None: - return None, server + return # Couldn't connect; remove lockfile and try again. remove_lockfile(lockfile) t@@ -170,8 +170,9 @@ class Daemon(DaemonThread): DaemonThread.__init__(self) self.config = config if fd is None and listen_jsonrpc: - fd, server = get_fd_or_server(config) - if fd is None: raise Exception('failed to lock daemon; already running?') + fd = get_file_descriptor(config) + if fd is None: + raise Exception('failed to lock daemon; already running?') self.asyncio_loop, self._stop_loop, self._loop_thread = create_and_start_event_loop() if config.get('offline'): self.network = None DIR diff --git a/run_electrum b/run_electrum t@@ -357,13 +357,14 @@ if __name__ == '__main__': if cmdname == 'gui': configure_logging(config) - fd, server = daemon.get_fd_or_server(config) + fd = daemon.get_file_descriptor(config) if fd is not None: plugins = init_plugins(config, config.get('gui', 'qt')) d = daemon.Daemon(config, fd) d.init_gui(config, plugins) sys.exit(0) else: + server = daemon.get_server() result = server.gui(config_options) elif cmdname == 'daemon': t@@ -373,7 +374,7 @@ if __name__ == '__main__': if subcommand in [None, 'start']: configure_logging(config) - fd, server = daemon.get_fd_or_server(config) + fd = daemon.get_file_descriptor(config) if fd is not None: if subcommand == 'start': pid = os.fork() t@@ -404,6 +405,7 @@ if __name__ == '__main__': d.join() sys.exit(0) else: + server = daemon.get_server(config) result = server.daemon(config_options) else: server = daemon.get_server(config)