diff options
Diffstat (limited to 'src/platform/posix/posix_pollq_port.c')
| -rw-r--r-- | src/platform/posix/posix_pollq_port.c | 23 |
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); |
