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