capture SIGHUP and SIGTERM (windows) and disconnect; also testall no longer loads string26 with python3
This commit is contained in:
@@ -16,6 +16,7 @@ import sys
|
||||
import threading
|
||||
import time
|
||||
import types
|
||||
import signal
|
||||
try:
|
||||
import queue
|
||||
except ImportError:
|
||||
@@ -195,6 +196,17 @@ class XMLStream(object):
|
||||
self.auto_reconnect = True
|
||||
self.is_client = False
|
||||
|
||||
signal.signal(signal.SIGHUP, self._handle_kill)
|
||||
signal.signal(signal.SIGTERM, self._handle_kill) # used in Windows
|
||||
|
||||
def _handle_kill(self, signum, frame):
|
||||
"""
|
||||
Capture kill event and disconnect cleanly after first
|
||||
spawning the "killed" event.
|
||||
"""
|
||||
self.event("killed", direct=True)
|
||||
self.disconnect()
|
||||
|
||||
def new_id(self):
|
||||
"""
|
||||
Generate and return a new stream ID in hexadecimal form.
|
||||
@@ -710,7 +722,7 @@ class XMLStream(object):
|
||||
if depth == 0:
|
||||
# The stream's root element has closed,
|
||||
# terminating the stream.
|
||||
logging.debug("Ending read XML loop")
|
||||
logging.debug("End of stream recieved")
|
||||
self.stream_end_event.set()
|
||||
return False
|
||||
elif depth == 1:
|
||||
|
||||
Reference in New Issue
Block a user