Re: How do I save TSRMLS_CACHE for a new thread in PHP7?
| From: | Ruslan Osmanov | Date: | Wed, 25 Nov 2015 16:46:35 +0000 |
| Subject: | Re: How do I save TSRMLS_CACHE for a new thread in PHP7? | ||
| References: | 1 | Groups: | php.pecl.dev |
| Request: | Send a blank email to pecl-dev+get-13357@lists.php.net to get a copy of this message | ||
What do I do now?
On Sun, 22 Nov 2015 11:42:45 +0500
Ruslan Osmanov <rrosmanov@gmail.com> wrote:
> 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
Attachment: [application/pgp-signature] signature.asc