- for (i = 0; i < rtnl->rqueue_size; i++) {
- if (REFCNT_GET(rtnl->rqueue[i]->n_ref) > 1) {
- q = false;
- break;
- } else if (rtnl->rqueue[i]->rtnl != rtnl)
- --refs;
- }
-
- if (q) {
- for (i = 0; i < rtnl->wqueue_size; i++) {
- if (REFCNT_GET(rtnl->wqueue[i]->n_ref) > 1) {
- q = false;
- break;
- } else if (rtnl->wqueue[i]->rtnl != rtnl)
- --refs;
- }
- }
-
- if (q && REFCNT_GET(rtnl->n_ref) == refs) {
- /* Drop our own ref early to avoid recursion from:
- * sd_rtnl_message_unref()
- * sd_rtnl_unref()
- * These must enter sd_rtnl_unref() with a ref-cnt
- * smaller than us. */
- REFCNT_DEC(rtnl->n_ref);
-
- for (i = 0; i < rtnl->rqueue_size; i++)
- sd_rtnl_message_unref(rtnl->rqueue[i]);
- free(rtnl->rqueue);