示例#1
0
文件: debug.py 项目: jarieb/celery
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()
示例#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()
示例#3
0
文件: debug.py 项目: 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()
示例#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()
示例#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()
示例#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()
示例#7
0
 def test_reset_alarm(self):
     with patch('signal.alarm') as _alarm:
         signals.reset_alarm()
         _alarm.assert_called_with(0)
示例#8
0
 def test_reset_alarm(self):
     with patch('signal.alarm') as _alarm:
         signals.reset_alarm()
         _alarm.assert_called_with(0)
示例#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)
示例#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)
示例#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)