How do I save TSRMLS_CACHE for a new thread in PHP7?

From: Date: Sun, 22 Nov 2015 06:42:45 +0000
Subject: How do I save TSRMLS_CACHE for a new thread in PHP7?
Groups: php.pecl.dev 
Request: Send a blank email to pecl-dev+get-13343@lists.php.net to get a copy of this message
Hi, suppose we are using Zend API in a new thread (created by extension). The problem that Zend API context(ZEND_TSRMLS_CACHE) is a thread-local variable. I'm looking for a way to pass ZEND_TSRMLS_CACHE to my thread. I'm used to use TSRMLS_FETCH_FROM_CTX(thread_data) and TSRMLS_SET_CTX(thread_data) in previous PHP versions. Now, in PHP7 they are not working - _tsrm_ls_cache is equal to zero within thread function: (gdb) print _tsrm_ls_cache void* 0x0 Well, as I've mentioned, I'm aware of that ZEND_TSRMLS_CACHE is a thread-local variable. Probably, the OS kernel took care of keeping thread-local data thread-local, and that's why I can't access the "saved" thread context. But then how am I supposed to use Zend API working with ZTS in my own thread? Thanks. -- Ruslan Osmanov

Attachment: [application/pgp-signature] signature.asc
« previous php.pecl.dev (#13343) next »