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

PCMan pcman.tw at gmail.com
Tue Jun 29 13:52:26 PDT 2010


Thank you all for the quick reply.
Is there any suggested way to workaround this?
I previously tried to schedule a idle handler and call FilesystemMount
in it instead, and it works. However, this could make things out of
sync.
When my idle handler get called, it's possible that the device was
already removed. Or its properties may already being changed. However
currently I don't find a better way.

Any suggestions?

On Wed, Jun 30, 2010 at 4:46 AM, Will Thompson
<will.thompson at collabora.co.uk> wrote:
> On 29/06/10 21:41, Havoc Pennington wrote:
>>
>> 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 still nonrecursive or
>> whether it needs to be. It may be a relic.
>
> This issue is <https://bugs.freedesktop.org/show_bug.cgi?id=14581>. I looked
> into it briefly recently, and commented on the bug.
>
> --
> Will
>


More information about the dbus mailing list