summaryrefslogtreecommitdiffstats
path: root/Lib/multiprocessing
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/multiprocessing')
-rw-r--r--Lib/multiprocessing/connection.py7
-rw-r--r--Lib/multiprocessing/forking.py9
-rw-r--r--Lib/multiprocessing/util.py15
3 files changed, 4 insertions, 27 deletions
diff --git a/Lib/multiprocessing/connection.py b/Lib/multiprocessing/connection.py
index acf43b1..56f375d 100644
--- a/Lib/multiprocessing/connection.py
+++ b/Lib/multiprocessing/connection.py
@@ -23,8 +23,7 @@ import itertools
import _multiprocessing
from multiprocessing import current_process, AuthenticationError, BufferTooShort
-from multiprocessing.util import (
- get_temp_dir, Finalize, sub_debug, debug, _eintr_retry)
+from multiprocessing.util import get_temp_dir, Finalize, sub_debug, debug
from multiprocessing.forking import ForkingPickler
try:
import _winapi
@@ -323,8 +322,6 @@ if _winapi:
if (self._got_empty_message or
_winapi.PeekNamedPipe(self._handle)[0] != 0):
return True
- if timeout < 0:
- timeout = None
return bool(wait([self], timeout))
def _get_more_data(self, ov, maxsize):
@@ -402,8 +399,6 @@ class Connection(_ConnectionBase):
return self._recv(size)
def _poll(self, timeout):
- if timeout < 0.0:
- timeout = None
r = wait([self._handle], timeout)
return bool(r)
diff --git a/Lib/multiprocessing/forking.py b/Lib/multiprocessing/forking.py
index ca03e95..2729afe 100644
--- a/Lib/multiprocessing/forking.py
+++ b/Lib/multiprocessing/forking.py
@@ -75,12 +75,9 @@ else:
#
if sys.platform != 'win32':
- import select
-
exit = os._exit
duplicate = os.dup
close = os.close
- _select = util._eintr_retry(select.select)
#
# We define a Popen class similar to the one from subprocess, but
@@ -130,10 +127,10 @@ if sys.platform != 'win32':
def wait(self, timeout=None):
if self.returncode is None:
if timeout is not None:
- r = _select([self.sentinel], [], [], timeout)[0]
- if not r:
+ from .connection import wait
+ if not wait([self.sentinel], timeout):
return None
- # This shouldn't block if select() returned successfully.
+ # This shouldn't block if wait() returned successfully.
return self.poll(os.WNOHANG if timeout == 0.0 else 0)
return self.returncode
diff --git a/Lib/multiprocessing/util.py b/Lib/multiprocessing/util.py
index da99063..9b6dac2 100644
--- a/Lib/multiprocessing/util.py
+++ b/Lib/multiprocessing/util.py
@@ -295,18 +295,3 @@ class ForkAwareLocal(threading.local):
register_after_fork(self, lambda obj : obj.__dict__.clear())
def __reduce__(self):
return type(self), ()
-
-
-#
-# Automatic retry after EINTR
-#
-
-def _eintr_retry(func):
- @functools.wraps(func)
- def wrapped(*args, **kwargs):
- while True:
- try:
- return func(*args, **kwargs)
- except InterruptedError:
- continue
- return wrapped