/* We get here after reading the value in a VALUE reply. * The item is ready in c->item. */ void cproxy_process_a2a_downstream_nread(conn *c) { assert(c != NULL); if (settings.verbose > 1) fprintf(stderr, "<%d cproxy_process_a2a_downstream_nread %d %d\n", c->sfd, c->ileft, c->isize); downstream *d = c->extra; assert(d != NULL); item *it = c->item; assert(it != NULL); // Clear c->item because we either move it to the upstream or // item_remove() it on error. // c->item = NULL; conn_set_state(c, conn_new_cmd); // pthread_mutex_lock(&c->thread->stats.mutex); // c->thread->stats.slab_stats[it->slabs_clsid].set_cmds++; // pthread_mutex_unlock(&c->thread->stats.mutex); multiget_ascii_downstream_response(d, it); item_remove(it); }
/* We get here after reading the value in a VALUE reply. * The item is ready in c->item. */ void cproxy_process_a2a_downstream_nread(conn *c) { cb_assert(c != NULL); if (settings.verbose > 1) { moxi_log_write("<%d cproxy_process_a2a_downstream_nread %d %d\n", c->sfd, c->ileft, c->isize); } downstream *d = c->extra; cb_assert(d != NULL); item *it = c->item; cb_assert(it != NULL); /* Clear c->item because we either move it to the upstream or */ /* item_remove() it on error. */ c->item = NULL; conn_set_state(c, conn_new_cmd); /* pthread_mutex_lock(&c->thread->stats.mutex); */ /* c->thread->stats.slab_stats[it->slabs_clsid].set_cmds++; */ /* pthread_mutex_unlock(&c->thread->stats.mutex); */ multiget_ascii_downstream_response(d, it); item_remove(it); }