[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: Overlays and OpenLDAP multi-threading model


> The overlay stack is called within the execution of an operation.  As
> such, it only affects the thread that executes that operation, unless your
> code does something nasty like locking global mutexes.  This implies that
> it is *not* entirely blocking a connection: a connection can
> simultaneously spawn multiple operations.  It is not clear from your
> message how your overlay can affect OpenLDAP connection handling, as this
> is not usually exposed in overlay handling.

I'm not aware about details of OpenLDAP multi-threading model, so I asked. :)

Imagine *if* each thread accepts one connection at time and it does
it's operations
in a 'serialized' manner:
accept connection from client => fills up accordingly structures =>
pass data to overlay => pass
data to backend => backend does it's job => pass data back to overlay
=> connection
response to client. In this case, if overlay processing takes a long
time, the connection
from *that* and only *that* client will be delayed.

By your answer I think each thread uses a event loop to perform each
operation, is that
right ?

I'll not touch any thread resources like mutexes, some global variable and
so on. It will not that evil :)

thanks a lot!
Lucas Brasilino