cvs: ZendEngine2(PHP_5_2) / zend_ts_hash.c

From: Date: Fri, 11 May 2007 12:21:26 +0000
Subject: cvs: ZendEngine2(PHP_5_2) / zend_ts_hash.c
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-5797@lists.php.net to get a copy of this message
tony2001 Fri May 11 12:21:26 2007 UTC Modified files: (Branch: PHP_5_2) /ZendEngine2 zend_ts_hash.c Log: MFH: fix #41134 (zend_ts_hash_clean not thread-safe) fix also zend_ts_hash_*destroy() http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_ts_hash.c?r1=1.14.2.1.2.1&r2=1.14.2.1.2.2&diff_format=u Index: ZendEngine2/zend_ts_hash.c diff -u ZendEngine2/zend_ts_hash.c:1.14.2.1.2.1 ZendEngine2/zend_ts_hash.c:1.14.2.1.2.2 --- ZendEngine2/zend_ts_hash.c:1.14.2.1.2.1 Mon Jan 1 09:35:47 2007 +++ ZendEngine2/zend_ts_hash.c Fri May 11 12:21:26 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ts_hash.c,v 1.14.2.1.2.1 2007/01/01 09:35:47 sebastian Exp $ */ +/* $Id: zend_ts_hash.c,v 1.14.2.1.2.2 2007/05/11 12:21:26 tony2001 Exp $ */ #include "zend.h" #include "zend_ts_hash.h" @@ -81,17 +81,22 @@ ZEND_API void zend_ts_hash_destroy(TsHashTable *ht) { + begin_write(ht); + zend_hash_destroy(TS_HASH(ht)); + end_write(ht); + #ifdef ZTS tsrm_mutex_free(ht->mx_reader); tsrm_mutex_free(ht->mx_writer); #endif - zend_hash_destroy(TS_HASH(ht)); } ZEND_API void zend_ts_hash_clean(TsHashTable *ht) { ht->reader = 0; + begin_write(ht); zend_hash_clean(TS_HASH(ht)); + end_write(ht); } ZEND_API int _zend_ts_hash_add_or_update(TsHashTable *ht, char *arKey, uint nKeyLength, void *pData, uint nDataSize, void **pDest, int flag ZEND_FILE_LINE_DC) @@ -140,11 +145,14 @@ ZEND_API void zend_ts_hash_graceful_destroy(TsHashTable *ht) { + begin_write(ht); + zend_hash_graceful_destroy(TS_HASH(ht)); + end_write(ht); + #ifdef ZTS tsrm_mutex_free(ht->mx_reader); tsrm_mutex_free(ht->mx_reader); #endif - zend_hash_graceful_destroy(TS_HASH(ht)); } ZEND_API void zend_ts_hash_apply(TsHashTable *ht, apply_func_t apply_func TSRMLS_DC)

« previous php.zend-engine.cvs (#5797) next »