Hi!
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