cvs: ZendEngine2 / zend_ts_hash.c

From: Date: Fri, 11 May 2007 12:19:44 +0000
Subject: cvs: ZendEngine2 / zend_ts_hash.c
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-5796@lists.php.net to get a copy of this message
tony2001 Fri May 11 12:19:44 2007 UTC Modified files: /ZendEngine2 zend_ts_hash.c Log: 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.17&r2=1.18&diff_format=u Index: ZendEngine2/zend_ts_hash.c diff -u ZendEngine2/zend_ts_hash.c:1.17 ZendEngine2/zend_ts_hash.c:1.18 --- ZendEngine2/zend_ts_hash.c:1.17 Mon Jan 1 09:29:21 2007 +++ ZendEngine2/zend_ts_hash.c Fri May 11 12:19:44 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ts_hash.c,v 1.17 2007/01/01 09:29:21 sebastian Exp $ */ +/* $Id: zend_ts_hash.c,v 1.18 2007/05/11 12:19:44 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 (#5796) next »