The entry deleteAllLinks in the struct libalias is only used to signal
a state between internal calls. It's not used between API calls.
Details
- Reviewers
- None
- Group Reviewers
network - Commits
- rGfe83900f9fa9: libalias: Restructure - Remove temporary state deleteAllLinks from global struct
Use testsuite.
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Suppose we load stopped, and then are preempted. Then, the transmit path tries to enqueue a packet and fails with ENOBUFS, so it sets stopped = 1. The only way we can make progress is by running the cleanup task again, right?
I think this mechanism works, but I'm wondering if we really need a full barrier here. It looks like acquire/release loads/stores of stopped would be sufficient.