Python subprocess._eintr_retry_call() Examples
The following are 6
code examples of subprocess._eintr_retry_call().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
subprocess
, or try the search function
.
Example #1
Source File: test_subprocess.py From ironpython2 with Apache License 2.0 | 5 votes |
def test_eintr_retry_call(self): record_calls = [] def fake_os_func(*args): record_calls.append(args) if len(record_calls) == 2: raise OSError(errno.EINTR, "fake interrupted system call") return tuple(reversed(args)) self.assertEqual((999, 256), subprocess._eintr_retry_call(fake_os_func, 256, 999)) self.assertEqual([(256, 999)], record_calls) # This time there will be an EINTR so it will loop once. self.assertEqual((666,), subprocess._eintr_retry_call(fake_os_func, 666)) self.assertEqual([(256, 999), (666,), (666,)], record_calls)
Example #2
Source File: test_subprocess.py From BinderFilter with MIT License | 5 votes |
def test_eintr_retry_call(self): record_calls = [] def fake_os_func(*args): record_calls.append(args) if len(record_calls) == 2: raise OSError(errno.EINTR, "fake interrupted system call") return tuple(reversed(args)) self.assertEqual((999, 256), subprocess._eintr_retry_call(fake_os_func, 256, 999)) self.assertEqual([(256, 999)], record_calls) # This time there will be an EINTR so it will loop once. self.assertEqual((666,), subprocess._eintr_retry_call(fake_os_func, 666)) self.assertEqual([(256, 999), (666,), (666,)], record_calls)
Example #3
Source File: test_subprocess.py From oss-ftp with MIT License | 5 votes |
def test_eintr_retry_call(self): record_calls = [] def fake_os_func(*args): record_calls.append(args) if len(record_calls) == 2: raise OSError(errno.EINTR, "fake interrupted system call") return tuple(reversed(args)) self.assertEqual((999, 256), subprocess._eintr_retry_call(fake_os_func, 256, 999)) self.assertEqual([(256, 999)], record_calls) # This time there will be an EINTR so it will loop once. self.assertEqual((666,), subprocess._eintr_retry_call(fake_os_func, 666)) self.assertEqual([(256, 999), (666,), (666,)], record_calls)
Example #4
Source File: test_subprocess.py From ironpython3 with Apache License 2.0 | 5 votes |
def test_eintr_retry_call(self): record_calls = [] def fake_os_func(*args): record_calls.append(args) if len(record_calls) == 2: raise OSError(errno.EINTR, "fake interrupted system call") return tuple(reversed(args)) self.assertEqual((999, 256), subprocess._eintr_retry_call(fake_os_func, 256, 999)) self.assertEqual([(256, 999)], record_calls) # This time there will be an EINTR so it will loop once. self.assertEqual((666,), subprocess._eintr_retry_call(fake_os_func, 666)) self.assertEqual([(256, 999), (666,), (666,)], record_calls)
Example #5
Source File: test_subprocess.py From gcblue with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_eintr_retry_call(self): record_calls = [] def fake_os_func(*args): record_calls.append(args) if len(record_calls) == 2: raise OSError(errno.EINTR, "fake interrupted system call") return tuple(reversed(args)) self.assertEqual((999, 256), subprocess._eintr_retry_call(fake_os_func, 256, 999)) self.assertEqual([(256, 999)], record_calls) # This time there will be an EINTR so it will loop once. self.assertEqual((666,), subprocess._eintr_retry_call(fake_os_func, 666)) self.assertEqual([(256, 999), (666,), (666,)], record_calls)
Example #6
Source File: subprocess42.py From luci-py with Apache License 2.0 | 4 votes |
def wait(self, timeout=None, poll_initial_interval=0.001, poll_max_interval=0.05): # pylint: disable=arguments-differ """Implements python3's timeout support. Raises: - TimeoutExpired when more than timeout seconds were spent waiting for the process. """ assert timeout is None or isinstance(timeout, (int, float)), timeout if timeout is None: super(Popen, self).wait() elif self.returncode is None: if sys.platform == 'win32': WAIT_TIMEOUT = 258 result = subprocess._subprocess.WaitForSingleObject( self._handle, int(timeout * 1000)) if result == WAIT_TIMEOUT: raise TimeoutExpired(self.args, timeout) self.returncode = subprocess._subprocess.GetExitCodeProcess( self._handle) else: # If you think the following code is horrible, it's because it is # inspired by python3's stdlib. end = time.time() + timeout delay = poll_initial_interval while True: try: pid, sts = subprocess._eintr_retry_call( os.waitpid, self.pid, os.WNOHANG) except OSError as e: if e.errno != errno.ECHILD: raise pid = self.pid sts = 0 if pid == self.pid: # This sets self.returncode. self._handle_exitstatus(sts) break remaining = end - time.time() if remaining <= 0: raise TimeoutExpired(self.args, timeout) delay = min(delay * 2, remaining, poll_max_interval) time.sleep(delay) if not self.end: # communicate() uses wait() internally. self.end = time.time() self._cleanup() return self.returncode