Lines Matching refs:ht

25 static void begin_read(TsHashTable *ht)  in begin_read()  argument
28 tsrm_mutex_lock(ht->mx_reader); in begin_read()
29 if ((++(ht->reader)) == 1) { in begin_read()
30 tsrm_mutex_lock(ht->mx_writer); in begin_read()
32 tsrm_mutex_unlock(ht->mx_reader); in begin_read()
36 static void end_read(TsHashTable *ht) in end_read() argument
39 tsrm_mutex_lock(ht->mx_reader); in end_read()
40 if ((--(ht->reader)) == 0) { in end_read()
41 tsrm_mutex_unlock(ht->mx_writer); in end_read()
43 tsrm_mutex_unlock(ht->mx_reader); in end_read()
47 static void begin_write(TsHashTable *ht) in begin_write() argument
50 tsrm_mutex_lock(ht->mx_writer); in begin_write()
54 static void end_write(TsHashTable *ht) in end_write() argument
57 tsrm_mutex_unlock(ht->mx_writer); in end_write()
62 ZEND_API int _zend_ts_hash_init(TsHashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_func_t… in _zend_ts_hash_init() argument
65 ht->mx_reader = tsrm_mutex_alloc(); in _zend_ts_hash_init()
66 ht->mx_writer = tsrm_mutex_alloc(); in _zend_ts_hash_init()
67 ht->reader = 0; in _zend_ts_hash_init()
69 …return _zend_hash_init(TS_HASH(ht), nSize, pHashFunction, pDestructor, persistent ZEND_FILE_LINE_R… in _zend_ts_hash_init()
72 ZEND_API int _zend_ts_hash_init_ex(TsHashTable *ht, uint nSize, hash_func_t pHashFunction, dtor_fun… in _zend_ts_hash_init_ex() argument
75 ht->mx_reader = tsrm_mutex_alloc(); in _zend_ts_hash_init_ex()
76 ht->mx_writer = tsrm_mutex_alloc(); in _zend_ts_hash_init_ex()
77 ht->reader = 0; in _zend_ts_hash_init_ex()
79 …return _zend_hash_init_ex(TS_HASH(ht), nSize, pHashFunction, pDestructor, persistent, bApplyProtec… in _zend_ts_hash_init_ex()
82 ZEND_API void zend_ts_hash_destroy(TsHashTable *ht) in zend_ts_hash_destroy() argument
84 begin_write(ht); in zend_ts_hash_destroy()
85 zend_hash_destroy(TS_HASH(ht)); in zend_ts_hash_destroy()
86 end_write(ht); in zend_ts_hash_destroy()
89 tsrm_mutex_free(ht->mx_reader); in zend_ts_hash_destroy()
90 tsrm_mutex_free(ht->mx_writer); in zend_ts_hash_destroy()
94 ZEND_API void zend_ts_hash_clean(TsHashTable *ht) in zend_ts_hash_clean() argument
96 ht->reader = 0; in zend_ts_hash_clean()
97 begin_write(ht); in zend_ts_hash_clean()
98 zend_hash_clean(TS_HASH(ht)); in zend_ts_hash_clean()
99 end_write(ht); in zend_ts_hash_clean()
102 ZEND_API int _zend_ts_hash_add_or_update(TsHashTable *ht, char *arKey, uint nKeyLength, void *pData… in _zend_ts_hash_add_or_update() argument
106 begin_write(ht); in _zend_ts_hash_add_or_update()
107 …retval = _zend_hash_add_or_update(TS_HASH(ht), arKey, nKeyLength, pData, nDataSize, pDest, flag ZE… in _zend_ts_hash_add_or_update()
108 end_write(ht); in _zend_ts_hash_add_or_update()
113 ZEND_API int _zend_ts_hash_quick_add_or_update(TsHashTable *ht, char *arKey, uint nKeyLength, ulong… in _zend_ts_hash_quick_add_or_update() argument
117 begin_write(ht); in _zend_ts_hash_quick_add_or_update()
118 …retval = _zend_hash_quick_add_or_update(TS_HASH(ht), arKey, nKeyLength, h, pData, nDataSize, pDest… in _zend_ts_hash_quick_add_or_update()
119 end_write(ht); in _zend_ts_hash_quick_add_or_update()
124 ZEND_API int _zend_ts_hash_index_update_or_next_insert(TsHashTable *ht, ulong h, void *pData, uint … in _zend_ts_hash_index_update_or_next_insert() argument
128 begin_write(ht); in _zend_ts_hash_index_update_or_next_insert()
129 …retval = _zend_hash_index_update_or_next_insert(TS_HASH(ht), h, pData, nDataSize, pDest, flag ZEND… in _zend_ts_hash_index_update_or_next_insert()
130 end_write(ht); in _zend_ts_hash_index_update_or_next_insert()
135 ZEND_API int zend_ts_hash_add_empty_element(TsHashTable *ht, char *arKey, uint nKeyLength) in zend_ts_hash_add_empty_element() argument
139 begin_write(ht); in zend_ts_hash_add_empty_element()
140 retval = zend_hash_add_empty_element(TS_HASH(ht), arKey, nKeyLength); in zend_ts_hash_add_empty_element()
141 end_write(ht); in zend_ts_hash_add_empty_element()
146 ZEND_API void zend_ts_hash_graceful_destroy(TsHashTable *ht) in zend_ts_hash_graceful_destroy() argument
148 begin_write(ht); in zend_ts_hash_graceful_destroy()
149 zend_hash_graceful_destroy(TS_HASH(ht)); in zend_ts_hash_graceful_destroy()
150 end_write(ht); in zend_ts_hash_graceful_destroy()
153 tsrm_mutex_free(ht->mx_reader); in zend_ts_hash_graceful_destroy()
154 tsrm_mutex_free(ht->mx_writer); in zend_ts_hash_graceful_destroy()
158 ZEND_API void zend_ts_hash_apply(TsHashTable *ht, apply_func_t apply_func TSRMLS_DC) in zend_ts_hash_apply() argument
160 begin_write(ht); in zend_ts_hash_apply()
161 zend_hash_apply(TS_HASH(ht), apply_func TSRMLS_CC); in zend_ts_hash_apply()
162 end_write(ht); in zend_ts_hash_apply()
165 ZEND_API void zend_ts_hash_apply_with_argument(TsHashTable *ht, apply_func_arg_t apply_func, void *… in zend_ts_hash_apply_with_argument() argument
167 begin_write(ht); in zend_ts_hash_apply_with_argument()
168 zend_hash_apply_with_argument(TS_HASH(ht), apply_func, argument TSRMLS_CC); in zend_ts_hash_apply_with_argument()
169 end_write(ht); in zend_ts_hash_apply_with_argument()
172 ZEND_API void zend_ts_hash_apply_with_arguments(TsHashTable *ht TSRMLS_DC, apply_func_args_t apply_… in zend_ts_hash_apply_with_arguments()
177 begin_write(ht); in zend_ts_hash_apply_with_arguments()
178 zend_hash_apply_with_arguments(TS_HASH(ht) TSRMLS_CC, apply_func, num_args, args); in zend_ts_hash_apply_with_arguments()
179 end_write(ht); in zend_ts_hash_apply_with_arguments()
183 ZEND_API void zend_ts_hash_reverse_apply(TsHashTable *ht, apply_func_t apply_func TSRMLS_DC) in zend_ts_hash_reverse_apply() argument
185 begin_write(ht); in zend_ts_hash_reverse_apply()
186 zend_hash_reverse_apply(TS_HASH(ht), apply_func TSRMLS_CC); in zend_ts_hash_reverse_apply()
187 end_write(ht); in zend_ts_hash_reverse_apply()
190 ZEND_API int zend_ts_hash_del_key_or_index(TsHashTable *ht, char *arKey, uint nKeyLength, ulong h, … in zend_ts_hash_del_key_or_index() argument
194 begin_write(ht); in zend_ts_hash_del_key_or_index()
195 retval = zend_hash_del_key_or_index(TS_HASH(ht), arKey, nKeyLength, h, flag); in zend_ts_hash_del_key_or_index()
196 end_write(ht); in zend_ts_hash_del_key_or_index()
201 ZEND_API ulong zend_ts_get_hash_value(TsHashTable *ht, char *arKey, uint nKeyLength) in zend_ts_get_hash_value() argument
205 begin_read(ht); in zend_ts_get_hash_value()
207 end_read(ht); in zend_ts_get_hash_value()
212 ZEND_API int zend_ts_hash_find(TsHashTable *ht, char *arKey, uint nKeyLength, void **pData) in zend_ts_hash_find() argument
216 begin_read(ht); in zend_ts_hash_find()
217 retval = zend_hash_find(TS_HASH(ht), arKey, nKeyLength, pData); in zend_ts_hash_find()
218 end_read(ht); in zend_ts_hash_find()
223 ZEND_API int zend_ts_hash_quick_find(TsHashTable *ht, char *arKey, uint nKeyLength, ulong h, void *… in zend_ts_hash_quick_find() argument
227 begin_read(ht); in zend_ts_hash_quick_find()
228 retval = zend_hash_quick_find(TS_HASH(ht), arKey, nKeyLength, h, pData); in zend_ts_hash_quick_find()
229 end_read(ht); in zend_ts_hash_quick_find()
234 ZEND_API int zend_ts_hash_index_find(TsHashTable *ht, ulong h, void **pData) in zend_ts_hash_index_find() argument
238 begin_read(ht); in zend_ts_hash_index_find()
239 retval = zend_hash_index_find(TS_HASH(ht), h, pData); in zend_ts_hash_index_find()
240 end_read(ht); in zend_ts_hash_index_find()
245 ZEND_API int zend_ts_hash_exists(TsHashTable *ht, char *arKey, uint nKeyLength) in zend_ts_hash_exists() argument
249 begin_read(ht); in zend_ts_hash_exists()
250 retval = zend_hash_exists(TS_HASH(ht), arKey, nKeyLength); in zend_ts_hash_exists()
251 end_read(ht); in zend_ts_hash_exists()
256 ZEND_API int zend_ts_hash_index_exists(TsHashTable *ht, ulong h) in zend_ts_hash_index_exists() argument
260 begin_read(ht); in zend_ts_hash_index_exists()
261 retval = zend_hash_index_exists(TS_HASH(ht), h); in zend_ts_hash_index_exists()
262 end_read(ht); in zend_ts_hash_index_exists()
301 ZEND_API int zend_ts_hash_sort(TsHashTable *ht, sort_func_t sort_func, compare_func_t compare_func,… in zend_ts_hash_sort() argument
305 begin_write(ht); in zend_ts_hash_sort()
306 retval = zend_hash_sort(TS_HASH(ht), sort_func, compare_func, renumber TSRMLS_CC); in zend_ts_hash_sort()
307 end_write(ht); in zend_ts_hash_sort()
325 ZEND_API int zend_ts_hash_minmax(TsHashTable *ht, compare_func_t compar, int flag, void **pData TSR… in zend_ts_hash_minmax() argument
329 begin_read(ht); in zend_ts_hash_minmax()
330 retval = zend_hash_minmax(TS_HASH(ht), compar, flag, pData TSRMLS_CC); in zend_ts_hash_minmax()
331 end_read(ht); in zend_ts_hash_minmax()
336 ZEND_API int zend_ts_hash_num_elements(TsHashTable *ht) in zend_ts_hash_num_elements() argument
340 begin_read(ht); in zend_ts_hash_num_elements()
341 retval = zend_hash_num_elements(TS_HASH(ht)); in zend_ts_hash_num_elements()
342 end_read(ht); in zend_ts_hash_num_elements()
347 ZEND_API int zend_ts_hash_rehash(TsHashTable *ht) in zend_ts_hash_rehash() argument
351 begin_write(ht); in zend_ts_hash_rehash()
352 retval = zend_hash_rehash(TS_HASH(ht)); in zend_ts_hash_rehash()
353 end_write(ht); in zend_ts_hash_rehash()
359 void zend_ts_hash_display_pListTail(TsHashTable *ht) in zend_ts_hash_display_pListTail() argument
361 begin_read(ht); in zend_ts_hash_display_pListTail()
362 zend_hash_display_pListTail(TS_HASH(ht)); in zend_ts_hash_display_pListTail()
363 end_read(ht); in zend_ts_hash_display_pListTail()
366 void zend_ts_hash_display(TsHashTable *ht) in zend_ts_hash_display() argument
368 begin_read(ht); in zend_ts_hash_display()
369 zend_hash_display(TS_HASH(ht)); in zend_ts_hash_display()
370 end_read(ht); in zend_ts_hash_display()