Introduce pipex_iterator(), the special thing to perform
authormvs <mvs@openbsd.org>
Tue, 23 Jan 2024 17:57:21 +0000 (17:57 +0000)
committermvs <mvs@openbsd.org>
Tue, 23 Jan 2024 17:57:21 +0000 (17:57 +0000)
commitaa95fb555a4c96d1734957962ba631e6fe724310
tree78b5d0a54577409188cbc84324613647f86515c8
parent65b7de8d2cc15e14b84872f72f2111ac45fa31c2
Introduce pipex_iterator(), the special thing to perform
`pipex_session_list' foreach walkthrough with `pipex_list_mtx' mutex(9)
relocking. It inserts special item after acquired `session' and keeps it
linked until `session' release. Only owner can unlink it's own item, so
the LIST_NEXT(session) is always valid even the `session' was unlinked.
The iterator skips special items at the `session' acquisition time, as
all other foreach loops where `pipex_list_mtx' mutex(9) is not relocked.

ok yasuoka
sys/net/pipex.c
sys/net/pipex_local.h