banshee r4636 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.Base src/Dap/Banshee.Dap/Banshee.Dap src/Dap/Banshee.Dap/Banshee.Dap.Gui
- From: gburt svn gnome org
- To: svn-commits-list gnome org
- Subject: banshee r4636 - in trunk/banshee: . src/Core/Banshee.Services/Banshee.Base src/Dap/Banshee.Dap/Banshee.Dap src/Dap/Banshee.Dap/Banshee.Dap.Gui
- Date: Tue, 30 Sep 2008 19:58:20 +0000 (UTC)
Author: gburt
Date: Tue Sep 30 19:58:20 2008
New Revision: 4636
URL: http://svn.gnome.org/viewvc/banshee?rev=4636&view=rev
Log:
2008-09-30 Gabriel Burt <gabriel burt gmail com>
* src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs: Ensure that the Sync happens
not on the main thread. If you changed the Automatic Sync option, it
woudl trigger a sync immediately, but that sync was happening on the GUI
thread.
* src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs: DapSync takes care of
threading now, remove SpawnFromMain call here.
* src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs: Add helper
method AssertNotInMainThread useful for debugging.
Modified:
trunk/banshee/ChangeLog
trunk/banshee/src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs
trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs
trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs
Modified: trunk/banshee/src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs (original)
+++ trunk/banshee/src/Core/Banshee.Services/Banshee.Base/ThreadAssist.cs Tue Sep 30 19:58:20 2008
@@ -49,6 +49,13 @@
return main_thread.Equals (Thread.CurrentThread);
}
}
+
+ public static void AssertNotInMainThread ()
+ {
+ if (ApplicationContext.Debugging && Banshee.Base.ThreadAssist.InMainThread) {
+ Hyena.Log.Warning ("In GUI thread, will probably block it", System.Environment.StackTrace);
+ }
+ }
public static void AssertInMainThread ()
{
Modified: trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs
==============================================================================
--- trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs (original)
+++ trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap.Gui/DapActions.cs Tue Sep 30 19:58:20 2008
@@ -92,9 +92,7 @@
{
DapSource dap = Dap;
if (dap != null) {
- Banshee.Base.ThreadAssist.SpawnFromMain (delegate {
- dap.Sync.Sync ();
- });
+ dap.Sync.Sync ();
}
}
}
Modified: trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs
==============================================================================
--- trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs (original)
+++ trunk/banshee/src/Dap/Banshee.Dap/Banshee.Dap/DapSync.cs Tue Sep 30 19:58:20 2008
@@ -273,7 +273,13 @@
public void Sync ()
{
- sync_limiter.Execute ();
+ if (Banshee.Base.ThreadAssist.InMainThread) {
+ Banshee.Base.ThreadAssist.SpawnFromMain (delegate {
+ sync_limiter.Execute ();
+ });
+ } else {
+ sync_limiter.Execute ();
+ }
}
private void RateLimitedSync ()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]