From c57939baa2b89e5760bbc438882b0fa254556f1d Mon Sep 17 00:00:00 2001 From: Andrew Resch Date: Wed, 1 Oct 2008 18:31:55 +0000 Subject: [PATCH] Fix add_torrent_url() to download the torrent file in a thread to prevent the main thread from blocking and causing the daemon to freeze. --- deluge/core/core.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/deluge/core/core.py b/deluge/core/core.py index 37b07c8c3..9839af3df 100644 --- a/deluge/core/core.py +++ b/deluge/core/core.py @@ -389,9 +389,12 @@ class Core( def export_add_torrent_url(self, url, options): log.info("Attempting to add url %s", url) + threading.Thread(target=self.fetch_torrent_url_thread, args=(self.export_add_torrent_file, url, options)).start() + + def fetch_torrent_url_thread(self, callback, url, options): # Get the actual filename of the torrent from the url provided. filename = url.split("/")[-1] - + # Get the .torrent file from the url torrent_file = deluge.common.fetch_url(url) if torrent_file is None: @@ -405,8 +408,7 @@ class Core( return False # Add the torrent to session - return self.export_add_torrent_file( - filename, filedump, options) + return callback(filename, filedump, options) def export_add_torrent_magnets(self, uris, options): for uri in uris: