From 9e5e6ddfb986754561216fd374fdea1a3d29f14c Mon Sep 17 00:00:00 2001 From: Andrew Resch Date: Thu, 28 Jun 2007 08:16:12 +0000 Subject: [PATCH] Fix remove torrent lock-up issue. --- src/core.py | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/src/core.py b/src/core.py index 1d3f51530..f10d5b571 100644 --- a/src/core.py +++ b/src/core.py @@ -489,6 +489,14 @@ class Manager: def handle_events(self): # Handle them for the backend's purposes, but still send them up in case the client # wants to do something - show messages, for example + def pop_event(): + try: + return deluge_core.pop_event() + except: + pass + else: + return deluge_core.pop_event() + ret = [] try: event = deluge_core.pop_event() @@ -499,7 +507,14 @@ class Manager: # print "EVENT: ", event ret.append(event) - + try: + if event['unique_ID'] not in self.unique_IDs: + event = pop_event() + continue + except KeyError: + event = pop_event() + continue + if event['event_type'] is self.constants['EVENT_FINISHED']: # Queue seeding torrent to bottom if needed if self.get_pref('queue_seeds_to_bottom'): @@ -531,13 +546,7 @@ class Manager: "tracker_messages", new) - - try: - event = deluge_core.pop_event() - except: - pass - else: - event = deluge_core.pop_event() + event = pop_event() return ret