Lines Matching defs:iter
546 repcache_iter_t *iter;
547 iter = uu_zalloc(sizeof (repcache_iter_t));
548 if (iter != NULL)
549 uu_avl_node_init(iter, &iter->ri_link, iter_pool);
550 return (iter);
554 iter_add(repcache_client_t *cp, repcache_iter_t *iter)
561 (void) uu_avl_find(cp->rc_iters, iter, NULL, &idx);
562 uu_avl_insert(cp->rc_iters, iter, idx);
570 repcache_iter_t *iter;
574 iter = uu_avl_find(cp->rc_iters, &id, NULL, NULL);
575 if (iter != NULL) {
576 add_log_ptr(get_log(), RC_PTR_TYPE_ITER, id, iter);
577 (void) pthread_mutex_lock(&iter->ri_lock);
581 return (iter);
592 repcache_iter_t *iter;
597 iter = uu_avl_find(cp->rc_iters, &iter_id, NULL, NULL);
600 assert(iter == NULL || !MUTEX_HELD(&iter->ri_lock));
603 if (iter == NULL || ep == NULL) {
608 (void) pthread_mutex_lock(&iter->ri_lock);
613 *iterp = iter;
618 add_log_ptr(rlp, RC_PTR_TYPE_ITER, iter_id, iter);
625 iter_release(repcache_iter_t *iter)
627 (void) pthread_mutex_unlock(&iter->ri_lock);
631 iter_destroy(repcache_iter_t *iter)
633 (void) pthread_mutex_lock(&iter->ri_lock);
634 rc_iter_destroy(&iter->ri_iter);
635 (void) pthread_mutex_unlock(&iter->ri_lock);
637 uu_avl_node_fini(iter, &iter->ri_link, iter_pool);
638 (void) pthread_mutex_destroy(&iter->ri_lock);
639 uu_free(iter);
645 repcache_iter_t *iter;
648 iter = uu_avl_find(cp->rc_iters, &id, NULL, NULL);
649 if (iter != NULL)
650 uu_avl_remove(cp->rc_iters, iter);
653 if (iter != NULL)
654 iter_destroy(iter);
660 repcache_iter_t *iter;
664 while ((iter = uu_avl_teardown(cp->rc_iters, &cookie)) != NULL) {
666 iter_destroy(iter);
1137 repcache_iter_t *iter;
1142 * If the iter already exists, and hasn't been read from,
1145 if ((iter = iter_find(cp, rpr->rpr_iterid)) != NULL) {
1146 sequence = iter->ri_sequence;
1147 iter_release(iter);
1156 iter = iter_alloc(cp);
1157 if (iter == NULL) {
1162 iter->ri_id = rpr->rpr_iterid;
1163 iter->ri_type = REP_PROTOCOL_TYPE_INVALID;
1164 iter->ri_sequence = 0;
1165 iter_add(cp, iter);
1188 repcache_iter_t *iter;
1191 result = iter_find_w_entity(cp, rpr->rpr_iterid, &iter,
1197 if (iter->ri_sequence > 1) {
1202 if (iter->ri_sequence == 1) {
1209 result = rc_node_setup_iter(&ep->re_node, &iter->ri_iter,
1213 iter->ri_sequence++;
1216 iter_release(iter);
1224 * _NOT_SET - iter has not been started
1226 * _BAD_REQUEST - iter walks values
1227 * _TYPE_MISMATCH - iter does not walk type entities
1242 repcache_iter_t *iter;
1246 result = iter_find_w_entity(cp, rpr->rpr_iterid, &iter,
1254 if (iter->ri_sequence == 0) {
1255 iter_release(iter);
1261 iter_release(iter);
1266 if (sequence == iter->ri_sequence) {
1267 iter_release(iter);
1272 if (sequence == iter->ri_sequence + 1) {
1273 result = rc_iter_next(iter->ri_iter, &ep->re_node,
1277 iter->ri_sequence++;
1279 iter_release(iter);
1285 iter_release(iter);
1299 repcache_iter_t *iter;
1305 iter = iter_find(cp, rpr->rpr_iterid);
1307 if (iter == NULL) {
1314 if (iter->ri_sequence == 0) {
1315 iter_release(iter);
1320 repeat = (sequence == iter->ri_sequence);
1322 if (sequence == 1 || (!repeat && sequence != iter->ri_sequence + 1)) {
1323 iter_release(iter);
1328 result = rc_iter_next_value(iter->ri_iter, out, outsz, repeat);
1331 iter->ri_sequence++;
1333 iter_release(iter);
1350 repcache_iter_t *iter = iter_find(cp, rpr->rpr_iterid);
1352 if (iter == NULL)
1355 if (iter->ri_sequence != 0) {
1356 iter->ri_sequence = 0;
1357 rc_iter_destroy(&iter->ri_iter);
1359 iter_release(iter);