Convert daemon threads back into normal threads.

This may need to be reverted if CTRL-C handling breaks, but everything
works fine so far in testing.

Resolves issue #95.
This commit is contained in:
Lance Stout
2011-11-20 12:15:39 -08:00
parent d1a945a305
commit fba60ffff1
3 changed files with 15 additions and 10 deletions

View File

@@ -87,11 +87,16 @@ class Waiter(BaseHandler):
if timeout is None:
timeout = self.stream().response_timeout
try:
stanza = self._payload.get(True, timeout)
except queue.Empty:
stanza = False
log.warning("Timed out waiting for %s", self.name)
elapsed_time = 0
stanza = False
while elapsed_time < timeout and not self.stream().stop.is_set():
try:
stanza = self._payload.get(True, 1)
break
except queue.Empty:
elapsed_time += 1
if elapsed_time >= timeout:
log.warning("Timed out waiting for %s", self.name)
self.stream().remove_handler(self.name)
return stanza