php - 在单独的线程中从 zval* 读取值 - PHP 扩展 c++
问题描述
我正在使用Centos 7(PHP - 5.6.36线程安全 - 禁用)我已经在c++中创建了PHP扩展来存储函数调用堆栈跟踪。
存储信息从 开始PHP_RINIT_FUNCTION
,以 结束PHP_RSHUTDOWN_FUNCTION
。
在这里,我使用持久内存分配来存储值,最终结果将存储在 zval* 可以解析的格式中。我把它推到了vector(m_resultVect)
每个请求关闭方法called(PHP_RSHUTDOWN_FUNCTION)
中。在另一个线程中,我将其交换vector (m_resultVect)
到其他线程,然后尝试解析 zval* 以获取调用堆栈跟踪信息。但我无法访问 zval*。
为什么我不能在另一个线程中访问?它会被zendMM自动清除吗?
.