Re: UDisks dbus async calls don't work sometimes when a second mainloop exists

2010-11-17 Thread Havoc Pennington
The issue may be that the dbus-glib mainloop source is set to nonrecursive. This is because historically the thread lock on DBusConnection was not recursive so you would deadlock if you tried to dispatch DBusConnection from within an existing dispatch. I'm not sure whether the main loop source is

Re: UDisks dbus async calls don't work sometimes when a second mainloop exists

2010-11-17 Thread Havoc Pennington
You may need to use the idle handler, but keep track of whether anything happens before the idle handler runs that would affect that handler... A possibly-helpful thing is to use g_idle_add_full() to add an "idle" at default or even high priority. Then the "idle" will be scheduled round-robin with