Philip Martin <[EMAIL PROTECTED]> writes:
> > I just ripped out that code, want to give this another try on your
> > SMP Linux box?
>
> It still fails.
>
> As I said, I don't know much about semaphores, but I think the problem
> is something to do with process exit.
The pool cleanup handler
static apr_status_t proc_mutex_sysv_cleanup(void *mutex_)
{
apr_proc_mutex_t *mutex=mutex_;
union semun ick;
if (mutex->interproc->filedes != -1) {
ick.val = 0;
semctl(mutex->interproc->filedes, 0, IPC_RMID, ick);
}
return APR_SUCCESS;
}
runs when each subprocess in the test exits. So the first subprocess
to exit will destroy the semaphore, even though the other processes
are using it.
--
Philip Martin