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
