// callback executed when a client done with a request static void s3client_pool_on_client_released (gpointer client, gpointer ctx) { PoolClient *pc = (PoolClient *) ctx; RequestData *data; // if we have a request pending data = g_queue_pop_head (pc->pool->q_requests); if (data) { data->on_client_ready (client, data->ctx); g_free (data); } }