void calls_status_tcp(struct callmaster *m, struct control_stream *s) { GQueue q = G_QUEUE_INIT; struct call *c; callmaster_get_all_calls(m, &q); control_stream_printf(s, "proxy %u "UINT64F"/%i/%i\n", g_queue_get_length(&q), atomic64_get(&m->stats.bytes), 0, 0); while (q.head) { c = g_queue_pop_head(&q); call_status_iterator(c, s); obj_put(c); } }
void calls_status_tcp(struct callmaster *m, struct control_stream *s) { struct stats st; GQueue q = G_QUEUE_INIT; struct call *c; mutex_lock(&m->statslock); st = m->stats; mutex_unlock(&m->statslock); callmaster_get_all_calls(m, &q); control_stream_printf(s, "proxy %u "UINT64F"/"UINT64F"/"UINT64F"\n", g_queue_get_length(&q), st.bytes, st.bytes - st.errors, st.bytes * 2 - st.errors); while (q.head) { c = g_queue_pop_head(&q); call_status_iterator(c, s); obj_put(c); } }