Python signal.setitimer() Examples
The following are 30
code examples of signal.setitimer().
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
signal
, or try the search function
.
Example #1
Source File: test_signal.py From ironpython2 with Apache License 2.0 | 6 votes |
def sig_vtalrm(self, *args): self.hndl_called = True if self.hndl_count > 3: # it shouldn't be here, because it should have been disabled. raise signal.ItimerError("setitimer didn't disable ITIMER_VIRTUAL " "timer.") elif self.hndl_count == 3: # disable ITIMER_VIRTUAL, this function shouldn't be called anymore signal.setitimer(signal.ITIMER_VIRTUAL, 0) if test_support.verbose: print("last SIGVTALRM handler call") self.hndl_count += 1 if test_support.verbose: print("SIGVTALRM handler invoked", args)
Example #2
Source File: test_signal.py From BinderFilter with MIT License | 6 votes |
def sig_vtalrm(self, *args): self.hndl_called = True if self.hndl_count > 3: # it shouldn't be here, because it should have been disabled. raise signal.ItimerError("setitimer didn't disable ITIMER_VIRTUAL " "timer.") elif self.hndl_count == 3: # disable ITIMER_VIRTUAL, this function shouldn't be called anymore signal.setitimer(signal.ITIMER_VIRTUAL, 0) if test_support.verbose: print("last SIGVTALRM handler call") self.hndl_count += 1 if test_support.verbose: print("SIGVTALRM handler invoked", args)
Example #3
Source File: test_signal.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_itimer_prof(self): self.itimer = signal.ITIMER_PROF signal.signal(signal.SIGPROF, self.sig_prof) signal.setitimer(self.itimer, 0.2, 0.2) start_time = time.monotonic() while time.monotonic() - start_time < 60.0: # do some work _ = pow(12345, 67890, 10000019) if signal.getitimer(self.itimer) == (0.0, 0.0): break # sig_prof handler stopped this itimer else: # Issue 8424 self.skipTest("timeout: likely cause: machine too slow or load too " "high") # profiling itimer should be (0.0, 0.0) now self.assertEqual(signal.getitimer(self.itimer), (0.0, 0.0)) # and the handler should have been called self.assertEqual(self.hndl_called, True)
Example #4
Source File: test_signal.py From Fluid-Designer with GNU General Public License v3.0 | 6 votes |
def test_itimer_virtual(self): self.itimer = signal.ITIMER_VIRTUAL signal.signal(signal.SIGVTALRM, self.sig_vtalrm) signal.setitimer(self.itimer, 0.3, 0.2) start_time = time.monotonic() while time.monotonic() - start_time < 60.0: # use up some virtual time by doing real work _ = pow(12345, 67890, 10000019) if signal.getitimer(self.itimer) == (0.0, 0.0): break # sig_vtalrm handler stopped this itimer else: # Issue 8424 self.skipTest("timeout: likely cause: machine too slow or load too " "high") # virtual itimer should be (0.0, 0.0) now self.assertEqual(signal.getitimer(self.itimer), (0.0, 0.0)) # and the handler should have been called self.assertEqual(self.hndl_called, True) # Issue 3864, unknown if this affects earlier versions of freebsd also
Example #5
Source File: test_signal.py From BinderFilter with MIT License | 6 votes |
def test_itimer_prof(self): self.itimer = signal.ITIMER_PROF signal.signal(signal.SIGPROF, self.sig_prof) signal.setitimer(self.itimer, 0.2, 0.2) start_time = time.time() while time.time() - start_time < 60.0: # do some work _ = pow(12345, 67890, 10000019) if signal.getitimer(self.itimer) == (0.0, 0.0): break # sig_prof handler stopped this itimer else: # Issue 8424 self.skipTest("timeout: likely cause: machine too slow or load too " "high") # profiling itimer should be (0.0, 0.0) now self.assertEqual(signal.getitimer(self.itimer), (0.0, 0.0)) # and the handler should have been called self.assertEqual(self.hndl_called, True)
Example #6
Source File: test_signal.py From ironpython2 with Apache License 2.0 | 6 votes |
def test_itimer_prof(self): self.itimer = signal.ITIMER_PROF signal.signal(signal.SIGPROF, self.sig_prof) signal.setitimer(self.itimer, 0.2, 0.2) start_time = time.time() while time.time() - start_time < 60.0: # do some work _ = pow(12345, 67890, 10000019) if signal.getitimer(self.itimer) == (0.0, 0.0): break # sig_prof handler stopped this itimer else: # Issue 8424 self.skipTest("timeout: likely cause: machine too slow or load too " "high") # profiling itimer should be (0.0, 0.0) now self.assertEqual(signal.getitimer(self.itimer), (0.0, 0.0)) # and the handler should have been called self.assertEqual(self.hndl_called, True)
Example #7
Source File: profiler.py From pyFileFixity with MIT License | 6 votes |
def start(self): self.last_profile_time = timer() if self.use_signal: try: signal.signal(signal.SIGALRM, self._signal) # the following tells the system to restart interrupted system calls if they are # interrupted before any data has been transferred. This avoids many of the problems # related to signals interrupting system calls, see issue #16 signal.siginterrupt(signal.SIGALRM, False) except ValueError: raise NotMainThreadError() signal.setitimer(signal.ITIMER_REAL, self.interval, 0.0) else: sys.setprofile(self._profile)
Example #8
Source File: samplers.py From profiling with BSD 3-Clause "New" or "Revised" License | 6 votes |
def run(self, profiler): weak_profiler = weakref.proxy(profiler) handle = functools.partial(self.handle_signal, weak_profiler) t = self.interval with deferral() as defer: prev_handle = signal.signal(signal.SIGPROF, handle) if prev_handle == signal.SIG_DFL: # sometimes the process receives SIGPROF although the sampler # unsets the itimer. If the previous handler was SIG_DFL, the # process will crash when received SIGPROF. To prevent this # risk, it makes the process to ignore SIGPROF when it isn't # running if the previous handler was SIG_DFL. prev_handle = signal.SIG_IGN defer(signal.signal, signal.SIGPROF, prev_handle) prev_itimer = signal.setitimer(signal.ITIMER_PROF, t, t) defer(signal.setitimer, signal.ITIMER_PROF, *prev_itimer) yield
Example #9
Source File: ioloop.py From honeything with GNU General Public License v3.0 | 6 votes |
def set_blocking_signal_threshold(self, seconds, action): """Sends a signal if the ioloop is blocked for more than s seconds. Pass seconds=None to disable. Requires python 2.6 on a unixy platform. The action parameter is a python signal handler. Read the documentation for the python 'signal' module for more information. If action is None, the process will be killed if it is blocked for too long. """ if not hasattr(signal, "setitimer"): #logging.error("set_blocking_signal_threshold requires a signal module " # "with the setitimer method") ht.logger.error("set_blocking_signal_threshold requires a signal module " "with the setitimer method") return self._blocking_signal_threshold = seconds if seconds is not None: signal.signal(signal.SIGALRM, action if action is not None else signal.SIG_DFL)
Example #10
Source File: flame_graph.py From vprof with BSD 2-Clause "Simplified" License | 6 votes |
def sample(self, signum, frame): #pylint: disable=unused-argument """Samples current stack and writes result in self._stats. Args: signum: Signal that activates handler. frame: Frame on top of the stack when signal is handled. """ stack = [] while frame and frame != self.base_frame: stack.append(( frame.f_code.co_name, frame.f_code.co_filename, frame.f_code.co_firstlineno)) frame = frame.f_back self._stats[tuple(stack)] += 1 signal.setitimer(signal.ITIMER_PROF, _SAMPLE_INTERVAL)
Example #11
Source File: test_signal.py From oss-ftp with MIT License | 6 votes |
def sig_vtalrm(self, *args): self.hndl_called = True if self.hndl_count > 3: # it shouldn't be here, because it should have been disabled. raise signal.ItimerError("setitimer didn't disable ITIMER_VIRTUAL " "timer.") elif self.hndl_count == 3: # disable ITIMER_VIRTUAL, this function shouldn't be called anymore signal.setitimer(signal.ITIMER_VIRTUAL, 0) if test_support.verbose: print("last SIGVTALRM handler call") self.hndl_count += 1 if test_support.verbose: print("SIGVTALRM handler invoked", args)
Example #12
Source File: test_signal.py From oss-ftp with MIT License | 6 votes |
def test_itimer_prof(self): self.itimer = signal.ITIMER_PROF signal.signal(signal.SIGPROF, self.sig_prof) signal.setitimer(self.itimer, 0.2, 0.2) start_time = time.time() while time.time() - start_time < 60.0: # do some work _ = pow(12345, 67890, 10000019) if signal.getitimer(self.itimer) == (0.0, 0.0): break # sig_prof handler stopped this itimer else: # Issue 8424 self.skipTest("timeout: likely cause: machine too slow or load too " "high") # profiling itimer should be (0.0, 0.0) now self.assertEqual(signal.getitimer(self.itimer), (0.0, 0.0)) # and the handler should have been called self.assertEqual(self.hndl_called, True)
Example #13
Source File: ioloop.py From honeything with GNU General Public License v3.0 | 5 votes |
def set_blocking_log_threshold(self, s): """Logs a stack trace if the ioloop is blocked for more than s seconds. Pass None to disable. Requires python 2.6 on a unixy platform. """ if not hasattr(signal, "setitimer"): logging.error("set_blocking_log_threshold requires a signal module " "with the setitimer method") return self._blocking_log_threshold = s if s is not None: signal.signal(signal.SIGALRM, self._handle_alarm)
Example #14
Source File: profiler.py From pyFileFixity with MIT License | 5 votes |
def stop(self): if self.use_signal: signal.setitimer(signal.ITIMER_REAL, 0.0, 0.0) try: signal.signal(signal.SIGALRM, signal.SIG_IGN) except ValueError: raise NotMainThreadError() else: sys.setprofile(None)
Example #15
Source File: pytest_timeout.py From pytest-timeout with MIT License | 5 votes |
def timeout_setup(item): """Setup up a timeout trigger and handler.""" params = get_params(item) if params.timeout is None or params.timeout <= 0: return if params.method == "signal": def handler(signum, frame): __tracebackhide__ = True timeout_sigalrm(item, params.timeout) def cancel(): signal.setitimer(signal.ITIMER_REAL, 0) signal.signal(signal.SIGALRM, signal.SIG_DFL) item.cancel_timeout = cancel signal.signal(signal.SIGALRM, handler) signal.setitimer(signal.ITIMER_REAL, params.timeout) elif params.method == "thread": timer = threading.Timer(params.timeout, timeout_timer, (item, params.timeout)) timer.name = "%s %s" % (__name__, item.nodeid) def cancel(): timer.cancel() timer.join() item.cancel_timeout = cancel timer.start()
Example #16
Source File: profiler.py From pyFileFixity with MIT License | 5 votes |
def _signal(self, signum, frame): now = timer() time_since_last_signal = now - self.last_profile_time self._record(frame, time_since_last_signal) signal.setitimer(signal.ITIMER_REAL, self.interval, 0.0) self.last_profile_time = now
Example #17
Source File: test_signal.py From ironpython3 with Apache License 2.0 | 5 votes |
def sig_vtalrm(self, *args): self.hndl_called = True if self.hndl_count > 3: # it shouldn't be here, because it should have been disabled. raise signal.ItimerError("setitimer didn't disable ITIMER_VIRTUAL " "timer.") elif self.hndl_count == 3: # disable ITIMER_VIRTUAL, this function shouldn't be called anymore signal.setitimer(signal.ITIMER_VIRTUAL, 0) self.hndl_count += 1
Example #18
Source File: test_socket.py From ironpython3 with Apache License 2.0 | 5 votes |
def setAlarm(self, seconds): signal.setitimer(signal.ITIMER_REAL, seconds)
Example #19
Source File: test_signal.py From ironpython3 with Apache License 2.0 | 5 votes |
def sig_prof(self, *args): self.hndl_called = True signal.setitimer(signal.ITIMER_PROF, 0)
Example #20
Source File: eintr_tester.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def stop_alarm(cls): signal.setitimer(signal.ITIMER_REAL, 0, 0)
Example #21
Source File: test_signal.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def test_itimer_real(self): self.itimer = signal.ITIMER_REAL signal.setitimer(self.itimer, 1.0) signal.pause() self.assertEqual(self.hndl_called, True) # Issue 3864, unknown if this affects earlier versions of freebsd also
Example #22
Source File: test_signal.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def sig_prof(self, *args): self.hndl_called = True signal.setitimer(signal.ITIMER_PROF, 0)
Example #23
Source File: test_signal.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def sig_vtalrm(self, *args): self.hndl_called = True if self.hndl_count > 3: # it shouldn't be here, because it should have been disabled. raise signal.ItimerError("setitimer didn't disable ITIMER_VIRTUAL " "timer.") elif self.hndl_count == 3: # disable ITIMER_VIRTUAL, this function shouldn't be called anymore signal.setitimer(signal.ITIMER_VIRTUAL, 0) self.hndl_count += 1
Example #24
Source File: test_signal.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def tearDown(self): signal.signal(signal.SIGALRM, self.old_alarm) if self.itimer is not None: # test_itimer_exc doesn't change this attr # just ensure that itimer is stopped signal.setitimer(self.itimer, 0)
Example #25
Source File: test_socket.py From Fluid-Designer with GNU General Public License v3.0 | 5 votes |
def setAlarm(self, seconds): signal.setitimer(signal.ITIMER_REAL, seconds)
Example #26
Source File: test_mptools.py From mptools with MIT License | 5 votes |
def _proc_worker_wrapper_helper(caplog, worker_class, args=None, expect_shutdown_evt=True, alarm_secs=1.0): startup_evt = mp.Event() shutdown_evt = mp.Event() event_q = MPQueue() if args is None: args = () def alarm_handler(signal_num, current_stack_frame): shutdown_evt.set() if alarm_secs: signal.signal(signal.SIGALRM, alarm_handler) signal.setitimer(signal.ITIMER_REAL, alarm_secs) caplog.set_level(logging.DEBUG) exitcode = proc_worker_wrapper(worker_class, "TEST", startup_evt, shutdown_evt, event_q, *args) assert startup_evt.is_set() assert shutdown_evt.is_set() == expect_shutdown_evt items = list(event_q.drain()) assert items last_item = items[-1] assert last_item.msg_src == "TEST" assert last_item.msg_type == "SHUTDOWN" assert last_item.msg == "Normal" assert exitcode == 0 return items[:-1]
Example #27
Source File: timeouts.py From tasktiger with MIT License | 5 votes |
def setup_death_penalty(self): """Sets up an alarm signal and a signal handler that raises a JobTimeoutException after the timeout amount (expressed in seconds). """ signal.signal(signal.SIGALRM, self.handle_death_penalty) signal.setitimer(signal.ITIMER_REAL, self._timeout)
Example #28
Source File: timeout.py From iopipe-python with Apache License 2.0 | 5 votes |
def cancel(self): signal.setitimer(signal.ITIMER_REAL, 0)
Example #29
Source File: timeout.py From iopipe-python with Apache License 2.0 | 5 votes |
def __enter__(self): signal.signal(signal.SIGALRM, self.stop) if self.seconds > 0: signal.setitimer(signal.ITIMER_REAL, self.seconds) return self
Example #30
Source File: ioloop.py From teleport with Apache License 2.0 | 5 votes |
def set_blocking_signal_threshold(self, seconds, action): if not hasattr(signal, "setitimer"): gen_log.error("set_blocking_signal_threshold requires a signal module " "with the setitimer method") return self._blocking_signal_threshold = seconds if seconds is not None: signal.signal(signal.SIGALRM, action if action is not None else signal.SIG_DFL)