X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fdata.c;h=57b6f4d0c0b936ad7b2b48eed3e860d5582d10c0;hp=5d7be991a1a8ebde885f99277f2374cb3602e05c;hb=fb8f7887c289ae74d6e8dd85d55ae09e6796e890;hpb=cceaed6bbd4c6f0407fe6841e0bbcbdd1edef432 diff --git a/src/data.c b/src/data.c index 5d7be99..57b6f4d 100644 --- a/src/data.c +++ b/src/data.c @@ -28,10 +28,40 @@ #include "data.h" #include "php_globals.h" +#include "zend_types.h" #include #include +#if PSI_THREADED_PARSER +# include + +pthread_mutex_t psi_string_mutex = PTHREAD_MUTEX_INITIALIZER; + +zend_string *psi_string_init_interned(const char *buf, size_t len, int p) +{ + zend_string *str; + + pthread_mutex_lock(&psi_string_mutex); + str = zend_string_init_interned(buf, len, p); + pthread_mutex_unlock(&psi_string_mutex); + + return str; +} + +zend_string *psi_new_interned_string(zend_string *str) +{ + zend_string *new_str; + + pthread_mutex_lock(&psi_string_mutex); + new_str = zend_new_interned_string(str); + pthread_mutex_unlock(&psi_string_mutex); + + return new_str; +} + +#endif + static void psi_data_ctor_internal(struct psi_data *data, psi_error_cb error, unsigned flags) {