]> granicus.if.org Git - php/commitdiff
Fix segfault. Compile param --with-tsrm-pth=yes
authorEvgeny Kalashnikov <kenbo@prola.ru>
Thu, 21 Dec 2017 12:48:10 +0000 (13:48 +0100)
committerAnatol Belski <ab@php.net>
Thu, 21 Dec 2017 12:48:10 +0000 (13:48 +0100)
TSRM/TSRM.c

index 386b682ea7447998daac4abe824453b27d88d089..9fb8abd3a4d1d3db2efd03ee44e635499a8a9294 100644 (file)
@@ -93,7 +93,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))
@@ -125,6 +130,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)