Re: [Rhythmbox-devel] idle rhythmbox
- From: Jonathan Matthew <jonathan kaolin wh9 net>
- To: rhythmbox-devel gnome org
- Subject: Re: [Rhythmbox-devel] idle rhythmbox
- Date: Mon, 21 May 2007 12:03:34 +1000
On Mon, May 14, 2007 at 08:39:19AM +1000, James Doc Livingston wrote:
> > Second one is in rhythmdb/rhythmdb.c in the rhythmdb_idle_poll_events,
> > line 2003. When idle it runs the else branch every second. Not sure
> > what it does every second but being the DB it may not be fixable.
>
> This is the hard one. While it is certainly fixable, it's somewhat
> complicated to do so. It's been a while since I looked at it, so I might
> not be remembering exactly, but basically what happens is:
For anyone interested in this, but who wasn't watching the bug we're
using to track this work: we've replaced the rhythmdb event queue polling
with a mainloop source that dispatches the queued events, and we
wake up the main loop when pushing an event onto the queue. Since
rhythmdb events aren't all that common, this means rhythmbox is now
completely idle for seconds at a time while nothing is happening.
The next step is to look at some of the longer timeouts (audioscrobbler,
playlist saving, database saving, etc.), eliminating them when
they're unnecessary and using glib's new g_timeout_add_seconds to make
as many of them fire at the same time as possible.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]