[prev in list] [next in list] [prev in thread] [next in thread] 

List:       apache-modules
Subject:    Re: [apache-modules] Re: Thread
From:       Marco Spinetti <m.spinetti () pisa ! iol ! it>
Date:       2004-01-13 17:37:58
Message-ID: 40042CF6.7000000 () pisa ! iol ! it
[Download RAW message or body]

I'm using Red Hat Linux 7.1 with

kernel 2.4.2-2
glibc-2.2.4-31 and it's pthreds

So the results is that I can't use pthreads to manage different 
connections inside the handler of an apache module.

I think is a great limitation: apache 1.3.x is the most famous web 
server in the world but it doesn't let you to use pthreads inside it.

Blahhhh.......

I have worked for nothing: I can put all my work in the bathroom........

I'm furious.


--Marco




howard J meadows wrote:

> What platfrom are you running on?
> If you're running on Linux pthreads often don't work anyhow (even with Apache2)(you \
> usually need a different kernel). On Apache1.3 you can't use pthreads to start off \
> requests / sub-requests without that weird behaviour discussed. But you should be \
> able to use them for simpler tasks. 
> HTH
> 
> Howard
> --
> 
> --------- Original Message ---------
> 
> DATE: Tue, 13 Jan 2004 18:02:32
> From: Marco Spinetti <m.spinetti@pisa.iol.it>
> To: apache-modules@covalent.net
> Cc: 
> 
> 
> 
> > No,
> > 
> > I'm starting threads in child process (inside handler function) not 
> > during reading of configuration data.
> > 
> > Reading your email it seems that using pthreads inside child process in 
> > apache 1.3.x gives strange results and it will not work as expected, 
> > while using apache 2 all is ok.
> > 
> > Is it true?
> > 
> > If it is, I have a big problem becasue  my module is for apache 1.3.x
> > 
> > 
> > What is the right and real answer?
> > 
> > Regards
> > 
> > 
> > --Marco
> > 
> > 
> > 
> > Alex (Oleksiy) Bolgarov wrote:
> > 
> > 
> > 
> > > --- Marco Spinetti <m.spinetti@pisa.iol.it> wrote: >
> > > Hi all,
> > > 
> > > 
> > > 
> > > 
> > > > I have implemented my module: inside it I start 5
> > > > pthreads. Each one 
> > > > starts a different connection.
> > > > 
> > > > I'm using apache 1.3.27.
> > > > 
> > > > My big problem is if I start apache with:
> > > > 
> > > > /usr/local/apache/bin/httpd -X -f
> > > > /usr/local/apache/conf/httpd.conf -c 
> > > > 'Port 80'
> > > > 
> > > > all is ok.
> > > > 
> > > > But if I start apache normally
> > > > (/usr/local/apache/bin/apachectl start) 
> > > > my apache module never returns from
> > > > pthread_cond_wait.
> > > > 
> > > > 
> > > > 
> > > > 
> > > Apache 1.3.X forks child processes to process
> > > requests. You should remember that after fork(), in
> > > the child process only one thread is running - the one
> > > that calls fork() (see man pthread_atfork, or even
> > > better google for pthread_atfork()). I guess you start
> > > therads when you are reading configuration directievs,
> > > right? Those threads are staretd in the parent Apache
> > > process. When Apache decides it needs to start new
> > > child process to process a request, it fork()s, and in
> > > the child process your threads just are not running!
> > > 
> > > Now, you do not see this when starting Apache with -X
> > > option, because, if I remember correctly, -X means
> > > "run Apache in one process without forking", to
> > > provide nice debug environment for module development.
> > > If you run Apache via apachectl, no -X option is given
> > > to httpd and Apache start forking new processes.
> > > 
> > > So, this means bacically that you _can_ use threads in
> > > Apache 1.3 module, in a sence that it will compile and
> > > run without crashes, but it usually will not work as
> > > expected.
> > > 
> > > On the other hand I have very positive experience
> > > using threads in the module for Apache 2 with "worker"
> > > or "perchild" MPMs. You just make sure that you start
> > > threads in the child process, not ini parent during
> > > reading of configuration data.
> > > 
> > > 
> > > Thank you, 
> > > 
> > > alex.
> > > 
> > > ______________________________________________________________________ 
> > > Post your free ad now! http://personals.yahoo.ca
> > > 
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: apache-modules-unsubscribe@covalent.net
> > > For additional commands, e-mail: apache-modules-help@covalent.net
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > 
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: apache-modules-unsubscribe@covalent.net
> > For additional commands, e-mail: apache-modules-help@covalent.net
> > 
> > 
> > 
> > 
> 
> 
> 
> ____________________________________________________________
> Get advanced SPAM filtering on Webmail or POP Mail ... Get Lycos Mail!
> http://login.mail.lycos.com/r/referral?aid=27005
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: apache-modules-unsubscribe@covalent.net
> For additional commands, e-mail: apache-modules-help@covalent.net
> 
> 
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: apache-modules-unsubscribe@covalent.net
For additional commands, e-mail: apache-modules-help@covalent.net


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic