On Sun, Nov 30, 2008 at 14:04, Olov Andersson <[EMAIL PROTECTED]> wrote: > Hello. > > I am converting an Apache 1.3 one-thread-per-process module to an Apache2 > worker multi-thread multi-process environment. I need to retain some > internal connections between outside client connections. To do this in the > most efficient manner seems to be using an apr_reslist per *process* with > pooled connections. So far so good, but I need to initialize this pool, and > I'm a bit uncertain of the module initilization state. > > Assuming it is running on UNIX, is the following correct? > 1) You need to allocate the reslist with connections in a child_init hook. > 2) Put it in the process pool to have it properly shut down at process exit. > > Which takes me to the tricky part: > 3) Is the child_init hook only run *one time per process* by *one* thread > ever?
Yes. > I guess best way to fix this otherwise would be with a mutex on an > init state variable? > 4) Are children forked from a *dormant* parent process that is *never* used > to serve requests and has *not* run child_init? Yes. > Therefore children will have > no connections/file descriptors or any state dependent on > child_init inherited at all? Otherwise if processes are forked with an > existing connection reslist, the only thing I can think of for knowing when > to (re-)initialize the connection reslist is to keep track of with which > process ID it was initialized. > > Any guidance greately appreciated. > > Regards, > Olov >