non-blocking dbus server

Jiri Moskovcak jmoskovc at redhat.com
Fri Jul 10 09:18:53 UTC 2009


Hi,
in our project ABRT we use DBUS for communication between ABRT daemon 
and client (gui), the problem is that when I ask daemon to do some 
time-consuming work the server is blocked until the work is done. So I 
want to use threads and that's where I found the catch.

Here is my idea:
1. client calls remote method foo() over dbus
2. daemon receives the call, creates the thread and let it do the work 
in background and serve other requests
3. when the work is finished send reply to the client
- this is the part where I'm stuck, because I want to send the reply as 
return message to the matching method call, but the method call already 
returned when I started the thread. (So far I can achieve this by 
sending signal with return value as an argument, but I don't think this 
is a good solution).

I use dbus-c++, so maybe the answer is in some low-level DBUS API.

Thanks for any help,
Jirka
-------------- next part --------------
A non-text attachment was scrubbed...
Name: jmoskovc.vcf
Type: text/x-vcard
Size: 126 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/fedora-devel-list/attachments/20090710/bc425ac1/attachment.vcf>


More information about the fedora-devel-list mailing list