[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/network/ktorrent
From:       Joris Guisson <joris.guisson () gmail ! com>
Date:       2010-10-16 10:39:39
Message-ID: 20101016103939.A20FAAC896 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1186423 by guisson:

Merge rev 1186422 from stable (fix for 254214)

 M  +1 -0      ChangeLog  
 M  +5 -1      ktorrent/core.cpp  
 M  +1 -0      ktorrent/core.h  
 M  +0 -5      libktcore/torrent/queuemanager.cpp  


--- trunk/extragear/network/ktorrent/ChangeLog #1186422:1186423
@@ -32,6 +32,7 @@
 - Backport several improvements for IP filter auto update from trunk
 - Fix bug causing two instances of ktorrent to be started when missing files dialog \
                is shown at startup (252099)
 - Fix bug causing KT to use invalid dbus paths in group paths
+- Fix crash at exit due to a Core::update getting called during exit (254214)
 
 Changes in 4.0.3:
 - Fix bug causing wrong encoding to be used when the default save location of a \
                group is read (244873)
--- trunk/extragear/network/ktorrent/ktorrent/core.cpp #1186422:1186423
@@ -68,7 +68,7 @@
 {
 	const Uint32 CORE_UPDATE_INTERVAL = 250;
 
-	Core::Core(kt::GUI* gui) : gui(gui),keep_seeding(true),sleep_suppression_cookie(-1)
+	Core::Core(kt::GUI* gui) : \
gui(gui),keep_seeding(true),sleep_suppression_cookie(-1),exiting(false)  {
 		UpdateCurrentTime();
 		qman = new QueueManager();
@@ -898,6 +898,7 @@
 	void Core::onExit()
 	{
 		// stop timer to prevent updates during wait
+		exiting = true;
 		update_timer.stop();
 		
 		net::SocketMonitor::instance().shutdown();
@@ -1032,6 +1033,9 @@
 
 	void Core::update()
 	{
+		if (exiting)
+			return;
+		
 		try
 		{
 			bt::UpdateCurrentTime();
--- trunk/extragear/network/ktorrent/ktorrent/core.h #1186422:1186423
@@ -263,6 +263,7 @@
 		int sleep_suppression_cookie;
 		QMap<bt::TorrentInterface*,ScanListener*> active_scans;
 		QMap<bt::TorrentInterface*,bool> delayed_removal;
+		bool exiting;
 	};
 }
 
--- trunk/extragear/network/ktorrent/libktcore/torrent/queuemanager.cpp \
#1186422:1186423 @@ -86,11 +86,6 @@
 		exiting = true;
 		Uint32 nd = downloads.count();
 		suspended_torrents.clear();
-		
-		// wait for a second to allow all http jobs to send the stopped event
-		if (nd > 0)
-			SynchronousWait(1000);
-		
 		qDeleteAll(downloads);
 		downloads.clear();
 	}


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic