[PATCH] CTDB protocol and client fixes
Martin Schwenke
martin at meltin.net
Tue Nov 24 08:53:43 UTC 2015
On Tue, 24 Nov 2015 07:48:44 +0100, Volker Lendecke
<Volker.Lendecke at SerNet.DE> wrote:
> On Tue, Nov 24, 2015 at 05:33:23PM +1100, Amitay Isaacs wrote:
> > Since no one has replied to this email, let me summarize.
> >
> > 1. For some reason I cannot fathom, async processing is treated *different*
> > from sync processing. A global event context for all async processing is
> > ok, but for sync processing need lots of temporary contexts.
>
> When you use tevent_loop_once deep inside the call stack where some
> other tevent_loop_once is also active, anything can happen. As long as
> callers work without tevent_loop_allow_nesting then it might be workable.
I think that's the key here: no tevent_loop_allow_nesting().
There are 2 options:
* Disallow nested event loops at compile time by not passing an
event context around. Then you need to create temporary event
contexts, do repeated set-up and tear-down and, depending on whose
eyes you are looking with, you end up with more complexity.
* Do the setup once, use generic packet processing under the hood and
let tevent's run-time nesting detection catch the nesting if someone
writes bad code.
I felt very peaceful yesterday when I understood both options and
agreed with them both. ;-)
peace & happiness,
martin
More information about the samba-technical
mailing list