Example #1
0
def blockdetection(timeout):
    if not timeout:
        yield
    else:
        old_handler = signals['ALRM']
        old_handler = None if old_handler == _on_blocking else old_handler

        signals['ALRM'] = _on_blocking

        try:
            yield signals.arm_alarm(timeout)
        finally:
            if old_handler:
                signals['ALRM'] = old_handler
            signals.reset_alarm()
Example #2
0
def blockdetection(timeout):
    if not timeout:
        yield
    else:
        old_handler = signals['ALRM']
        old_handler = None if old_handler == _on_blocking else old_handler

        signals['ALRM'] = _on_blocking

        try:
            yield signals.arm_alarm(timeout)
        finally:
            if old_handler:
                signals['ALRM'] = old_handler
            signals.reset_alarm()
Example #3
0
File: debug.py Project: young-0/PWM
def blockdetection(timeout):
    """A timeout context using ``SIGALRM`` that can be used to detect blocking
    functions."""
    if not timeout:
        yield
    else:
        old_handler = signals['ALRM']
        old_handler = None if old_handler == _on_blocking else old_handler

        signals['ALRM'] = _on_blocking

        try:
            yield signals.arm_alarm(timeout)
        finally:
            if old_handler:
                signals['ALRM'] = old_handler
            signals.reset_alarm()
Example #4
0
def blockdetection(timeout):
    """A timeout context using ``SIGALRM`` that can be used to detect blocking
    functions."""
    if not timeout:
        yield
    else:
        old_handler = signals['ALRM']
        old_handler = None if old_handler == _on_blocking else old_handler

        signals['ALRM'] = _on_blocking

        try:
            yield signals.arm_alarm(timeout)
        finally:
            if old_handler:
                signals['ALRM'] = old_handler
            signals.reset_alarm()
Example #5
0
def blockdetection(timeout):
    """Context that raises an exception if process is blocking.

    Uses ``SIGALRM`` to detect blocking functions.
    """
    if not timeout:
        yield
    else:
        old_handler = signals['ALRM']
        old_handler = None if old_handler == _on_blocking else old_handler

        signals['ALRM'] = _on_blocking

        try:
            yield signals.arm_alarm(timeout)
        finally:
            if old_handler:
                signals['ALRM'] = old_handler
            signals.reset_alarm()
Example #6
0
def blockdetection(timeout):
    """Context that raises an exception if process is blocking.

    Uses ``SIGALRM`` to detect blocking functions.
    """
    if not timeout:
        yield
    else:
        old_handler = signals['ALRM']
        old_handler = None if old_handler == _on_blocking else old_handler

        signals['ALRM'] = _on_blocking

        try:
            yield signals.arm_alarm(timeout)
        finally:
            if old_handler:
                signals['ALRM'] = old_handler
            signals.reset_alarm()
Example #7
0
 def test_reset_alarm(self):
     with patch('signal.alarm') as _alarm:
         signals.reset_alarm()
         _alarm.assert_called_with(0)
Example #8
0
 def test_reset_alarm(self):
     with patch('signal.alarm') as _alarm:
         signals.reset_alarm()
         _alarm.assert_called_with(0)
Example #9
0
 def test_reset_alarm(self):
     if sys.platform == 'win32':
         raise SkipTest('signal.alarm not available on Windows')
     with patch('signal.alarm') as _alarm:
         signals.reset_alarm()
         _alarm.assert_called_with(0)
Example #10
0
 def test_reset_alarm(self):
     if sys.platform == 'win32':
         raise SkipTest('signal.alarm not available on Windows')
     with patch('signal.alarm') as _alarm:
         signals.reset_alarm()
         _alarm.assert_called_with(0)
Example #11
0
 def test_reset_alarm(self):
     if sys.platform == "win32":
         raise SkipTest("signal.alarm not available on Windows")
     with patch("signal.alarm") as _alarm:
         signals.reset_alarm()
         _alarm.assert_called_with(0)