[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: non-blocking dbus server

On Fri, Jul 10, 2009 at 10:18 AM, Jiri Moskovcak<jmoskovc redhat com> 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?

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]