After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 412676 - Rubenv branch needs to be merged
Rubenv branch needs to be merged
Status: RESOLVED OBSOLETE
Product: banshee
Classification: Other
Component: general
git master
Other All
: Normal normal
: 0.98.1
Assigned To: Ruben Vermeersch
Banshee Maintainers
Depends on:
Blocks: 346949 354092 421477
 
 
Reported: 2007-02-27 16:09 UTC by Ruben Vermeersch
Modified: 2010-02-04 03:58 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Ruben Vermeersch 2007-02-27 16:09:41 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.
Comment 1 Ruben Vermeersch 2007-02-27 16:11:19 UTC
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(-)
Comment 2 Ruben Vermeersch 2007-02-27 16:13:14 UTC
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
Comment 3 Ruben Vermeersch 2007-02-27 16:24:22 UTC
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
Comment 4 Ruben Vermeersch 2007-03-04 16:43:17 UTC
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
Comment 5 Gabriel Burt 2007-06-21 22:53:15 UTC
What's the status here?  Are we waiting on something?
Comment 6 Ruben Vermeersch 2007-06-22 12:58:11 UTC
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).
Comment 7 Josiah Ritchie - flickerfly 2007-08-23 03:40:21 UTC
How'd exams go? You been able to move toward this?
Comment 8 Ruben Vermeersch 2007-11-29 12:51:13 UTC
Obsoleted by the new code :-)
Comment 9 Gabriel Burt 2007-11-29 18:15:38 UTC
Ruben, didnt you have changes to the QueuedSqliteDatabase that should be merged?  Any other small/big things that should be brought over?
Comment 10 Ruben Vermeersch 2007-11-29 20:56:32 UTC
AFAIK, abock isn't using it anymore. The constant thread switches were too slow for banshee's new pattern of database usage.
Comment 11 Gabriel Burt 2008-03-25 23:54:09 UTC
So, I think we actually merged the changes from f-spot's QSLDB code. :)  Thanks!