From e362ee514cc16bad7c70fb848e0f8d0b54da4d3b Mon Sep 17 00:00:00 2001 From: Denis Bilenko Date: Wed, 17 Jun 2009 15:01:22 +0700 Subject: [PATCH] fix test_socket.py: to use hub's signal method if available (for libevent hub) --- greentest/test_socket.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/greentest/test_socket.py b/greentest/test_socket.py index 0cb8ba5..ff33a43 100644 --- a/greentest/test_socket.py +++ b/greentest/test_socket.py @@ -888,7 +888,11 @@ class TCPTimeoutTest(SocketTCPTest): pass def alarm_handler(signal, frame): raise Alarm - old_alarm = signal.signal(signal.SIGALRM, alarm_handler) + from eventlet.api import get_hub + if hasattr(get_hub(), 'signal'): + myalarm = get_hub().signal(signal.SIGALRM, alarm_handler) + else: + old_alarm = signal.signal(signal.SIGALRM, alarm_handler) try: try: signal.alarm(2) # POSIX allows alarm to be up to 1 second early @@ -907,7 +911,10 @@ class TCPTimeoutTest(SocketTCPTest): self.fail("got Alarm in wrong place") finally: # no alarm can be pending. Safe to restore old handler. - signal.signal(signal.SIGALRM, old_alarm) + if hasattr(get_hub(), 'signal'): + myalarm.cancel() + else: + signal.signal(signal.SIGALRM, old_alarm) class UDPTimeoutTest(SocketUDPTest):