You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Daniel Veillard <ve...@rufus.w3.org> on 1998/03/20 04:35:58 UTC

Re: mod_perl + threaded Perl

> Until linuxthreads stops using SIGUSR1, no.  i.e. not in the linux 2.0/2.1
> time frames.  I think even the glibc threads are broken this way too... 
> and I consider it to be a library/kernel bug rather than apache bug
> because SIGUSR1 is supposed to be there for the application. 

  I agree but I need Posix threads on Linux within Apache-1.3 .
To avoid the problem I changed all references to SIGUSR1 to SIG_APACHE
(this "only" changes conf.h, http_config.c, http_main.c, http_protocol.c,
and test/time-sem.c).
  In conf.h I remapped it to SIGUNUSED for Linux/glibc
-----------------------
/*
 * Signal used for group communication : SIGUSR1 on most systems except
 * linux ones with glibc wherewe use SIGUNUSED
 */
#ifndef SIG_APACHE
#ifdef linux
#include <signal.h>
#ifdef __GLIBC__
#define SIG_APACHE SIGUNUSED
#else
#define SIG_APACHE SIGUSR1
#endif
#else /* !linux */
#define SIG_APACHE SIGUSR1
#endif /* linux */
#endif /* SIG_APACHE */
----------------------------------------
 
 However I didn't tested thoroughtly enough to certify that this is
valid/useful, 

Daniel




Re: mod_perl + threaded Perl

Posted by Dean Gaudet <dg...@arctic.org>.
Yes this will work.  It's a hack but it'll work.  You may want to use
something other than SIGUNUSED, since that's not supported by kill(1) ;)
You could use SIGWINCH for example.

Dean

On Thu, 19 Mar 1998, Daniel Veillard wrote:

> 
> > Until linuxthreads stops using SIGUSR1, no.  i.e. not in the linux 2.0/2.1
> > time frames.  I think even the glibc threads are broken this way too... 
> > and I consider it to be a library/kernel bug rather than apache bug
> > because SIGUSR1 is supposed to be there for the application. 
> 
>   I agree but I need Posix threads on Linux within Apache-1.3 .
> To avoid the problem I changed all references to SIGUSR1 to SIG_APACHE
> (this "only" changes conf.h, http_config.c, http_main.c, http_protocol.c,
> and test/time-sem.c).
>   In conf.h I remapped it to SIGUNUSED for Linux/glibc
> -----------------------
> /*
>  * Signal used for group communication : SIGUSR1 on most systems except
>  * linux ones with glibc wherewe use SIGUNUSED
>  */
> #ifndef SIG_APACHE
> #ifdef linux
> #include <signal.h>
> #ifdef __GLIBC__
> #define SIG_APACHE SIGUNUSED
> #else
> #define SIG_APACHE SIGUSR1
> #endif
> #else /* !linux */
> #define SIG_APACHE SIGUSR1
> #endif /* linux */
> #endif /* SIG_APACHE */
> ----------------------------------------
>  
>  However I didn't tested thoroughtly enough to certify that this is
> valid/useful, 
> 
> Daniel
> 
> 
> 
>