From fc77917e9c72e18b0fc94fc734df962204a2c04d Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 17 Oct 2020 13:08:49 +0530 Subject: [PATCH] Ensure LinuxListener.close can be called multiple times --- src/calibre/utils/ipc/server.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/calibre/utils/ipc/server.py b/src/calibre/utils/ipc/server.py index cc34cf32ef..f44ce8d6f6 100644 --- a/src/calibre/utils/ipc/server.py +++ b/src/calibre/utils/ipc/server.py @@ -123,8 +123,11 @@ if islinux: # shutdown() not close(). This is needed to allow calibre to # restart using the same socket address. import socket - self._listener._socket.shutdown(socket.SHUT_RDWR) - self._listener._socket.close() + listener = self._listener + if listener is not None: + self._listener = None + listener._socket.shutdown(socket.SHUT_RDWR) + listener._socket.close() def accept(self, *args, **kwargs): ans = Listener.accept(self, *args, **kwargs)