diff --git a/src/calibre/srv/sendfile.py b/src/calibre/srv/sendfile.py index f79606f555..33fd5388af 100644 --- a/src/calibre/srv/sendfile.py +++ b/src/calibre/srv/sendfile.py @@ -11,7 +11,7 @@ from io import DEFAULT_BUFFER_SIZE from select import select from calibre.constants import iswindows, isosx -from calibre.utils.ipc import eintr_retry_call +from calibre.srv.utils import eintr_retry_call def file_metadata(fileobj): try: diff --git a/src/calibre/srv/utils.py b/src/calibre/srv/utils.py index 5e3d538cc4..507a145095 100644 --- a/src/calibre/srv/utils.py +++ b/src/calibre/srv/utils.py @@ -165,3 +165,12 @@ def create_sock_pair(port=0): client_sock.setblocking(True) return client_sock, srv_sock + +def eintr_retry_call(func, *args, **kwargs): + while True: + try: + return func(*args, **kwargs) + except EnvironmentError as e: + if getattr(e, 'errno', None) in socket_error_eintr: + continue + raise