| 1539 | } |
| 1540 | |
| 1541 | void |
| 1542 | rib_destroy_subscriptions(struct rib_head *rnh) |
| 1543 | { |
| 1544 | struct rib_subscription *rs; |
| 1545 | struct epoch_tracker et; |
| 1546 | |
| 1547 | NET_EPOCH_ENTER(et); |
| 1548 | RIB_WLOCK(rnh); |
| 1549 | while ((rs = CK_STAILQ_FIRST(&rnh->rnh_subscribers)) != NULL) { |
| 1550 | CK_STAILQ_REMOVE_HEAD(&rnh->rnh_subscribers, next); |
| 1551 | epoch_call(net_epoch_preempt, destroy_subscription_epoch, |
| 1552 | &rs->epoch_ctx); |
| 1553 | } |
| 1554 | RIB_WUNLOCK(rnh); |
| 1555 | NET_EPOCH_EXIT(et); |
| 1556 | } |
no test coverage detected