From b3b45d7f0625748ccda2f52886202fb48273f820 Mon Sep 17 00:00:00 2001 From: calvin Date: Mon, 15 May 2006 18:34:30 +0000 Subject: [PATCH] add Timeout exception, and return in_progress URLs on status instead of unfinished git-svn-id: https://linkchecker.svn.sourceforge.net/svnroot/linkchecker/trunk/linkchecker@3187 e7d03fd6-7b0d-0410-9947-9c21f3af8025 --- linkcheck/cache/urlqueue.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/linkcheck/cache/urlqueue.py b/linkcheck/cache/urlqueue.py index 3027fe86..6b4030f3 100644 --- a/linkcheck/cache/urlqueue.py +++ b/linkcheck/cache/urlqueue.py @@ -24,6 +24,11 @@ import linkcheck import linkcheck.log +class Timeout (Exception): + """Raised by join()""" + pass + + class UrlQueue (Queue.Queue): """ A queue supporting several consumer tasks. The task_done() idea is @@ -167,7 +172,7 @@ class UrlQueue (Queue.Queue): while self.unfinished_tasks: remaining = endtime - time.time() if remaining <= 0.0: - return + raise Timeout() self.all_tasks_done.wait(remaining) finally: self.all_tasks_done.release() @@ -191,11 +196,12 @@ class UrlQueue (Queue.Queue): def status (self): """ - Get tuple (finished tasks, unfinished tasks, queue size). + Get tuple (finished tasks, in progress, queue size). """ self.mutex.acquire() try: - return (self.finished_tasks, self.unfinished_tasks, len(self.queue)) + return (self.finished_tasks, + len(self.in_progress), len(self.queue)) finally: self.mutex.release()