void network_backends_free(network_backends_t *bs) { gsize i; if (!bs) return; g_mutex_lock(bs->backends_mutex); /*remove lock*/ for (i = 0; i < bs->backends->len; i++) { network_backend_t *backend = bs->backends->pdata[i]; network_backend_free(backend); } g_mutex_unlock(bs->backends_mutex); /*remove lock*/ g_ptr_array_free(bs->backends, TRUE); for (i = 0; i < bs->recycle_backends->len; i++) { network_backend_t * b = g_ptr_array_index(bs->recycle_backends, i); network_backend_free(b); } g_ptr_array_free(bs->recycle_backends, TRUE); g_mutex_free(bs->backends_mutex); /*remove lock*/ g_free(bs->config_path); g_wrr_poll_free(bs->global_wrr); g_free(bs); }
void network_backends_free(network_backends_t *bs) { gsize i; if (!bs) return; g_mutex_lock(bs->backends_mutex); /*remove lock*/ for (i = 0; i < bs->backends->len; i++) { network_backend_t *backend = bs->backends->pdata[i]; network_backend_free(backend); } g_mutex_unlock(bs->backends_mutex); /*remove lock*/ g_ptr_array_free(bs->backends, TRUE); g_mutex_free(bs->backends_mutex); /*remove lock*/ g_wrr_poll_free(bs->global_wrr); g_free(bs->default_file); g_free(bs); }