Environment
- PHP: 8.2.4
- pthreads: 6.0.2
- OS: Windows 8.1 x64
- OPcache: no
Summary
Extensions imported using dl in the main thread incorrectly copy functions to the one created using the extension, although the extension is connected. The problem is solved only if you manually register module_entry->functions in pthreads_prepared_startup, according to the code from zend_register_module_ex
Reproducing Code
dl('mbstring');
//////////
use pmmp\thread\Thread as Thread;
$thread = new class extends Thread
{
public function run() : void
{
print_r(mb_strtolower('text'));
}
};
$thread->start(Thread::INHERIT_ALL) && $thread->join();
Expected Output
text
Actual Output
Call to undefined function mb_strtolower