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 void _zend_ts_hash_init(TsHashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool pe… 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 _zend_hash_init(TS_HASH(ht), nSize, pDestructor, persistent ZEND_FILE_LINE_RELAY_CC); in _zend_ts_hash_init()
72 ZEND_API void _zend_ts_hash_init_ex(TsHashTable *ht, uint nSize, dtor_func_t pDestructor, zend_bool… 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 …_zend_hash_init_ex(TS_HASH(ht), nSize, pDestructor, persistent, bApplyProtection ZEND_FILE_LINE_RE… 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 zval *_zend_ts_hash_add_or_update(TsHashTable *ht, zend_string *key, zval *pData, int flag… 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), key, pData, flag ZEND_FILE_LINE_RELAY_CC); in _zend_ts_hash_add_or_update()
108 end_write(ht); in _zend_ts_hash_add_or_update()
113 ZEND_API zval *_zend_ts_hash_index_add_or_update(TsHashTable *ht, zend_ulong h, zval *pData, int fl… in _zend_ts_hash_index_add_or_update() argument
117 begin_write(ht); in _zend_ts_hash_index_add_or_update()
118 retval = _zend_hash_index_add_or_update(TS_HASH(ht), h, pData, flag ZEND_FILE_LINE_RELAY_CC); in _zend_ts_hash_index_add_or_update()
119 end_write(ht); in _zend_ts_hash_index_add_or_update()
124 ZEND_API zval *zend_ts_hash_add_empty_element(TsHashTable *ht, zend_string *key) in zend_ts_hash_add_empty_element() argument
128 begin_write(ht); in zend_ts_hash_add_empty_element()
129 retval = zend_hash_add_empty_element(TS_HASH(ht), key); in zend_ts_hash_add_empty_element()
130 end_write(ht); in zend_ts_hash_add_empty_element()
135 ZEND_API void zend_ts_hash_graceful_destroy(TsHashTable *ht) in zend_ts_hash_graceful_destroy() argument
137 begin_write(ht); in zend_ts_hash_graceful_destroy()
138 zend_hash_graceful_destroy(TS_HASH(ht)); in zend_ts_hash_graceful_destroy()
139 end_write(ht); in zend_ts_hash_graceful_destroy()
142 tsrm_mutex_free(ht->mx_reader); in zend_ts_hash_graceful_destroy()
143 tsrm_mutex_free(ht->mx_writer); in zend_ts_hash_graceful_destroy()
147 ZEND_API void zend_ts_hash_apply(TsHashTable *ht, apply_func_t apply_func) in zend_ts_hash_apply() argument
149 begin_write(ht); in zend_ts_hash_apply()
150 zend_hash_apply(TS_HASH(ht), apply_func); in zend_ts_hash_apply()
151 end_write(ht); in zend_ts_hash_apply()
154 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
156 begin_write(ht); in zend_ts_hash_apply_with_argument()
157 zend_hash_apply_with_argument(TS_HASH(ht), apply_func, argument); in zend_ts_hash_apply_with_argument()
158 end_write(ht); in zend_ts_hash_apply_with_argument()
161 ZEND_API void zend_ts_hash_apply_with_arguments(TsHashTable *ht, apply_func_args_t apply_func, int … in zend_ts_hash_apply_with_arguments() argument
166 begin_write(ht); in zend_ts_hash_apply_with_arguments()
167 zend_hash_apply_with_arguments(TS_HASH(ht), apply_func, num_args, args); in zend_ts_hash_apply_with_arguments()
168 end_write(ht); in zend_ts_hash_apply_with_arguments()
172 ZEND_API void zend_ts_hash_reverse_apply(TsHashTable *ht, apply_func_t apply_func) in zend_ts_hash_reverse_apply() argument
174 begin_write(ht); in zend_ts_hash_reverse_apply()
175 zend_hash_reverse_apply(TS_HASH(ht), apply_func); in zend_ts_hash_reverse_apply()
176 end_write(ht); in zend_ts_hash_reverse_apply()
179 ZEND_API int zend_ts_hash_del(TsHashTable *ht, zend_string *key) in zend_ts_hash_del() argument
183 begin_write(ht); in zend_ts_hash_del()
184 retval = zend_hash_del(TS_HASH(ht), key); in zend_ts_hash_del()
185 end_write(ht); in zend_ts_hash_del()
190 ZEND_API int zend_ts_hash_index_del(TsHashTable *ht, zend_ulong h) in zend_ts_hash_index_del() argument
194 begin_write(ht); in zend_ts_hash_index_del()
195 retval = zend_hash_index_del(TS_HASH(ht), h); in zend_ts_hash_index_del()
196 end_write(ht); in zend_ts_hash_index_del()
201 ZEND_API zval *zend_ts_hash_find(TsHashTable *ht, zend_string *key) in zend_ts_hash_find() argument
205 begin_read(ht); in zend_ts_hash_find()
206 retval = zend_hash_find(TS_HASH(ht), key); in zend_ts_hash_find()
207 end_read(ht); in zend_ts_hash_find()
212 ZEND_API zval *zend_ts_hash_index_find(TsHashTable *ht, zend_ulong h) in zend_ts_hash_index_find() argument
216 begin_read(ht); in zend_ts_hash_index_find()
217 retval = zend_hash_index_find(TS_HASH(ht), h); in zend_ts_hash_index_find()
218 end_read(ht); in zend_ts_hash_index_find()
223 ZEND_API int zend_ts_hash_exists(TsHashTable *ht, zend_string *key) in zend_ts_hash_exists() argument
227 begin_read(ht); in zend_ts_hash_exists()
228 retval = zend_hash_exists(TS_HASH(ht), key); in zend_ts_hash_exists()
229 end_read(ht); in zend_ts_hash_exists()
234 ZEND_API int zend_ts_hash_index_exists(TsHashTable *ht, zend_ulong h) in zend_ts_hash_index_exists() argument
238 begin_read(ht); in zend_ts_hash_index_exists()
239 retval = zend_hash_index_exists(TS_HASH(ht), h); in zend_ts_hash_index_exists()
240 end_read(ht); in zend_ts_hash_index_exists()
279 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
283 begin_write(ht); in zend_ts_hash_sort()
284 retval = zend_hash_sort_ex(TS_HASH(ht), sort_func, compare_func, renumber); in zend_ts_hash_sort()
285 end_write(ht); in zend_ts_hash_sort()
303 ZEND_API zval *zend_ts_hash_minmax(TsHashTable *ht, compare_func_t compar, int flag) in zend_ts_hash_minmax() argument
307 begin_read(ht); in zend_ts_hash_minmax()
308 retval = zend_hash_minmax(TS_HASH(ht), compar, flag); in zend_ts_hash_minmax()
309 end_read(ht); in zend_ts_hash_minmax()
314 ZEND_API int zend_ts_hash_num_elements(TsHashTable *ht) in zend_ts_hash_num_elements() argument
318 begin_read(ht); in zend_ts_hash_num_elements()
319 retval = zend_hash_num_elements(TS_HASH(ht)); in zend_ts_hash_num_elements()
320 end_read(ht); in zend_ts_hash_num_elements()
325 ZEND_API int zend_ts_hash_rehash(TsHashTable *ht) in zend_ts_hash_rehash() argument
329 begin_write(ht); in zend_ts_hash_rehash()
330 retval = zend_hash_rehash(TS_HASH(ht)); in zend_ts_hash_rehash()
331 end_write(ht); in zend_ts_hash_rehash()
336 ZEND_API zval *zend_ts_hash_str_find(TsHashTable *ht, const char *key, size_t len) in zend_ts_hash_str_find() argument
340 begin_read(ht); in zend_ts_hash_str_find()
341 retval = zend_hash_str_find(TS_HASH(ht), key, len); in zend_ts_hash_str_find()
342 end_read(ht); in zend_ts_hash_str_find()
347 ZEND_API zval *_zend_ts_hash_str_update(TsHashTable *ht, const char *key, size_t len, zval *pData Z… in _zend_ts_hash_str_update() argument
351 begin_write(ht); in _zend_ts_hash_str_update()
352 retval = zend_hash_str_update(TS_HASH(ht), key, len, pData); in _zend_ts_hash_str_update()
353 end_write(ht); in _zend_ts_hash_str_update()
358 ZEND_API zval *_zend_ts_hash_str_add(TsHashTable *ht, const char *key, size_t len, zval *pData ZEND… in _zend_ts_hash_str_add() argument
362 begin_write(ht); in _zend_ts_hash_str_add()
363 retval = zend_hash_str_add(TS_HASH(ht), key, len, pData); in _zend_ts_hash_str_add()
364 end_write(ht); in _zend_ts_hash_str_add()