outside-dispatch-lock handlers

Havoc Pennington hp at redhat.com
Tue Feb 28 07:32:21 PST 2006


On Tue, 2006-02-28 at 14:57 +0100, Thiago Macieira wrote:
> 
> The first one was that the object_path handler would override the "result" 
> variable. The following part of the attached diff resolved the problem 
> (just after the filter loop):
> 
> -  else if (result == DBUS_HANDLER_RESULT_HANDLED)
> +  else if (result == DBUS_HANDLER_RESULT_HANDLED ||
> +          result == DBUS_HANDLER_RESULT_HANDLED_OUTSIDE_DISPATCH)
> 
> This makes it skip to the "out" label and process the outside-dispatch 
> handler.

Thanks, that was dumb ;-)  (testing patches = good)

> The second problem is probably a misunderstanding of how the dispatcher 
> works: when signals are delivered, they should be delivered to *all* 
> filters, right?

I don't think that's the case right now ... the idea is that you could
filter out a signal, but that normally you'd say NOT_YET_HANDLED and let
everyone see it, I think that was the idea anyway.

Hmm, obviously this breaks "outside handler" though, unless we add
NET_YET_HANDLED_OUTSIDE ;-)

Havoc




More information about the dbus mailing list