fix test_socket.py: to use hub's signal method if available (for libevent hub)

This commit is contained in:
Denis Bilenko
2009-06-17 15:01:22 +07:00
parent d61bd39107
commit e362ee514c

View File

@@ -888,6 +888,10 @@ class TCPTimeoutTest(SocketTCPTest):
pass
def alarm_handler(signal, frame):
raise Alarm
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:
@@ -907,6 +911,9 @@ class TCPTimeoutTest(SocketTCPTest):
self.fail("got Alarm in wrong place")
finally:
# no alarm can be pending. Safe to restore old handler.
if hasattr(get_hub(), 'signal'):
myalarm.cancel()
else:
signal.signal(signal.SIGALRM, old_alarm)
class UDPTimeoutTest(SocketUDPTest):