summaryrefslogtreecommitdiff
path: root/TSRM
diff options
context:
space:
mode:
authorAnatol Belski <ab@php.net>2017-12-21 13:49:55 +0100
committerAnatol Belski <ab@php.net>2017-12-21 13:49:55 +0100
commit3c57027556993e893b3cbef46c3b700905589f52 (patch)
treea04d591f062221352defd53155b1d3009a52ab5d /TSRM
parente68084780f29a6ed99dc2368a6df8f43b58d4377 (diff)
parentddd401859c0c0c311e70b964262d1274f4ca8035 (diff)
downloadphp-git-3c57027556993e893b3cbef46c3b700905589f52.tar.gz
Merge branch 'PHP-7.2'
* PHP-7.2: Fix segfault. Compile param --with-tsrm-pth=yes
Diffstat (limited to 'TSRM')
-rw-r--r--TSRM/TSRM.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/TSRM/TSRM.c b/TSRM/TSRM.c
index 76d0c820b4..72a57f5d5f 100644
--- a/TSRM/TSRM.c
+++ b/TSRM/TSRM.c
@@ -94,7 +94,12 @@ static FILE *tsrm_error_file;
}
#endif
-#if defined(PTHREADS)
+#if defined(GNUPTH)
+static pth_key_t tls_key;
+# define tsrm_tls_set(what) pth_key_setdata(tls_key, (void*)(what))
+# define tsrm_tls_get() pth_key_getdata(tls_key)
+
+#elif defined(PTHREADS)
/* Thread local storage */
static pthread_key_t tls_key;
# define tsrm_tls_set(what) pthread_setspecific(tls_key, (void*)(what))
@@ -123,6 +128,7 @@ TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debu
{/*{{{*/
#if defined(GNUPTH)
pth_init();
+ pth_key_create(&tls_key, 0);
#elif defined(PTHREADS)
pthread_key_create( &tls_key, 0 );
#elif defined(TSRM_ST)