Bug #13201: pthread_create in extension function never returns

From: Date: Fri, 07 Sep 2001 20:10:44 +0000
Subject: Bug #13201: pthread_create in extension function never returns
Groups: php.dev 
Request: Send a blank email to php-dev+get-65382@lists.php.net to get a copy of this message
From: drxor@intellaxiom.com 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

« previous php.dev (#65382) next »