On Fri, Jul 10, 2009 at 10:18 AM, Jiri Moskovcak<jmoskovc@xxxxxxxxxx> wrote: > 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 > Why can't you have a callback in the client that the daemon can call when it has finished? -- Mat Booth A: Because it destroys the order of the conversation. Q: Why shouldn't you do it? A: Posting your reply above the original message. Q: What is top-posting? -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list