From:             [EMAIL PROTECTED]
Operating system: linux 2.4 glibc 2.1
PHP version:      4.0.6
PHP Bug Type:     Unknown/Other Function
Bug description:  pthread_create in extension function never returns

I've created a wrapper extension for PHP to include my c++ library in as a
shared module. My c++ library create a thread with pthread_create somewhere
in the code. Using my library inside a stand-alone application works great,
but when using it in PHP extension. The function never returns.

I compiled PHP with these options
--with-apxs --without-mysql
I hadto disable GetRUsage to be able to compile PHP.
So PHP is an Apache Module.

I have Pentium 200Mhz with 92MB Linux 2.4.9 with glibc 2.1.

In fact, only in the main thread (I suppose to be the main thread) the
pthread_create function does not returns. The child thread is create, and
this child can create sub thread and their call to pthread_create
returns.

The problem can be easily reproduce by adding a pthread_create(&thread_id,
NULL, threadloop, NULL); directly in an extension function. I mean by
extension function the function beginning with PHP_FUNCTION.

Example:
void* threadloop (void*arg)
{
    //This line is execute after pthread_create
}

PHP_FUNCTION(test)
{
    pthread_t othread;
    pthread_create (&othread, NULL, threadloop, NULL);
    //The execution never comes here
}

--test.php

<HTML>
<BODY>
<?php test();
//Script hang on previous line
?>
</BODY>
</HTML>

I would like to know if it's a bug in linux pthread implementation or in
PHP.
-- 
Edit bug report at: http://bugs.php.net/?id=13201&edit=1


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to