fix test_socket.py: to use hub's signal method if available (for libevent hub)
This commit is contained in:
@@ -888,7 +888,11 @@ class TCPTimeoutTest(SocketTCPTest):
|
|||||||
pass
|
pass
|
||||||
def alarm_handler(signal, frame):
|
def alarm_handler(signal, frame):
|
||||||
raise Alarm
|
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:
|
||||||
try:
|
try:
|
||||||
signal.alarm(2) # POSIX allows alarm to be up to 1 second early
|
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")
|
self.fail("got Alarm in wrong place")
|
||||||
finally:
|
finally:
|
||||||
# no alarm can be pending. Safe to restore old handler.
|
# 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):
|
class UDPTimeoutTest(SocketUDPTest):
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user