aboutsummaryrefslogtreecommitdiff
path: root/src/platform/posix/posix_pollq_port.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/platform/posix/posix_pollq_port.c')
-rw-r--r--src/platform/posix/posix_pollq_port.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/platform/posix/posix_pollq_port.c b/src/platform/posix/posix_pollq_port.c
index 0a1110bf..bf628e47 100644
--- a/src/platform/posix/posix_pollq_port.c
+++ b/src/platform/posix/posix_pollq_port.c
@@ -105,22 +105,21 @@ nni_posix_pfd_fini(nni_posix_pfd *pfd)
nni_posix_pfd_close(pfd);
- if (!nni_thr_is_self(&pq->thr)) {
+ NNI_ASSERT(!nni_thr_is_self(&pq->thr));
- while (port_send(pq->port, 1, pfd) != 0) {
- if ((errno == EBADF) || (errno == EBADFD)) {
- pfd->closed = true;
- break;
- }
- sched_yield(); // try again later...
+ while (port_send(pq->port, 1, pfd) != 0) {
+ if ((errno == EBADF) || (errno == EBADFD)) {
+ pfd->closed = true;
+ break;
}
+ sched_yield(); // try again later...
+ }
- nni_mtx_lock(&pfd->mtx);
- while (!pfd->closed) {
- nni_cv_wait(&pfd->cv);
- }
- nni_mtx_unlock(&pfd->mtx);
+ nni_mtx_lock(&pfd->mtx);
+ while (!pfd->closed) {
+ nni_cv_wait(&pfd->cv);
}
+ nni_mtx_unlock(&pfd->mtx);
// We're exclusive now.
(void) close(pfd->fd);