GNOME Bugzilla – Bug 412676
Rubenv branch needs to be merged
Last modified: 2010-02-04 03:58:59 UTC
As soon as the freeze ends, I'd like to merge my branch back into trunk (as I really dislike doing separated development). To facilitate this, I'll use this bug to give an overview of what's in this branch and what it fixes. Once I figure out how svn merge works, I'll also keep my branch in sync with trunk, so there's as little delta as possible.
2007-02-27 Ruben Vermeersch <ruben@savanne.be> * src/Core/Banshee.Base/Utilities.cs: Add overloads to ThreadAssist.Spawn to pass a ThreadPriority. This one is from bug 346949. It's used in the import speedup patch to spawn low priority threads. ChangeLog | 5 +++++ src/Core/Banshee.Base/Utilities.cs | 10 ++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-)
2007-02-27 Ruben Vermeersch <ruben at savanne dot be> * src/Core/Banshee.Base/QueuedSqliteDatabase.cs: Convert all Monitor code to AutoResetEvent code. Should prevent very obscure deadlocks, minor improvements in the dispose method (no more spinlock). Also from bug 346949. Fixes a locking issue before we run into it, always good, as nobody likes to debug those. ChangeLog | 6 ++++ src/Core/Banshee.Base/QueuedSqliteDatabase.cs | 37 +++++++++++++++----------- 2 files changed, 28 insertions(+), 15 deletions(-) Patch can be viewed with svn diff -r 2123:2124
2007-02-27 Ruben Vermeersch <ruben at savanne dot be> Clean up LibraryTrackRemovedArgs. This patch changes the definition of LibraryTrackRemovedArgs from { LibraryTrackInfo Track, ICollection Tracks } to { ICollection<LibraryTrackInfo> Tracks } This causes a couple of things: The first goal was to simplify all methods handling LibraryTrackRemovedArgs. Now they only have to handle the single Tracks attribute. This removes a lot of duplicated code. Each method handling the TrackRemoved signal basically had to implement itself twice, this has now been reduced to once. While working on this, I changed Tracks to be a generic class of LibraryTrackInfo objects. This improves type safety. With the current code, it was possible to have both LibraryTrackInfo objects and SafeUri objects in the Tracks attribute. Fortunately, the possibility to use SafeUris isn't used anywhere as no code implements functionality to handle this. * src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.c s: * src/Core/Banshee.Base/Sources/LibrarySource.cs: * src/Core/Banshee.Base/Sources/PlaylistSource.cs: * src/Plugins/Banshee.Plugins.Podcast/PodcastLibrary.cs: Fixed methods handling LibraryTrackRemovedArgs. * src/Core/Banshee.Base/Library.cs: Changed definition of LibraryTrackRemovedArgs and methodes handling/creating these. This is the first step towards fixing bug 354092. This much simpler definition (which was needlessly complex) aids in proving that the database corruption can't occur anymore. ChangeLog | 34 ++++ src/Core/Banshee.Base/Banshee.SmartPlaylist/SmartPlaylistSource.cs | 10 - src/Core/Banshee.Base/Library.cs | 42 +---- src/Core/Banshee.Base/Sources/LibrarySource.cs | 4 src/Core/Banshee.Base/Sources/PlaylistSource.cs | 16 -- src/Plugins/Banshee.Plugins.Podcast/PodcastLibrary.cs | 78 ++-------- 6 files changed, 73 insertions(+), 111 deletions(-) Patch can be viewed with svn diff -r 2124:2125
2007-03-04 Ruben Vermeersch <ruben at savanne dot be> * src/Core/Banshee.Base/ImportManager.cs: The previous commit broke mass-storage DAPs. ImportManager shouldn't be a Singleton (as you can have a mass-storage import and a hard-disk import running at the same time). To reduce confusion, I moved the singleton code out of here. * src/Core/Banshee.Base/Banshee.Library/Import.cs: Into here, where it belongs. Either we go Singleton all the way, or we avoid confusing people who read code. There was singleton code in the importmanager, but it wasn't enforced. To reduce this confusion, I moved the singleton code out of there, into the only place which uses it (which, by its static nature, is a singleton on it's own). ChangeLog | 11 +++++++++ src/Core/Banshee.Base/Banshee.Library/Import.cs | 13 +++++++---- src/Core/Banshee.Base/ImportManager.cs | 16 +++----------- 3 files changed, 23 insertions(+), 17 deletions(-) Patch diff: svn diff -r 2130:2131
What's the status here? Are we waiting on something?
I'm in the middle of my exams, but I'm working to get this mergeable. It seems like we can use only some parts of it (stuff related to the database layer won't work in the new view).
How'd exams go? You been able to move toward this?
Obsoleted by the new code :-)
Ruben, didnt you have changes to the QueuedSqliteDatabase that should be merged? Any other small/big things that should be brought over?
AFAIK, abock isn't using it anymore. The constant thread switches were too slow for banshee's new pattern of database usage.
So, I think we actually merged the changes from f-spot's QSLDB code. :) Thanks!