diff options
Diffstat (limited to 'src/platform/windows/win_ipc.c')
| -rw-r--r-- | src/platform/windows/win_ipc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/platform/windows/win_ipc.c b/src/platform/windows/win_ipc.c index c6376cc7..169a2e00 100644 --- a/src/platform/windows/win_ipc.c +++ b/src/platform/windows/win_ipc.c @@ -572,17 +572,22 @@ void nni_plat_ipc_ep_connect(nni_plat_ipc_ep *ep, nni_aio *aio) { nni_win_ipc_conn_work *w = &nni_win_ipc_connecter; + int rv; if (nni_aio_begin(aio) != 0) { return; } nni_mtx_lock(&w->mtx); + if ((rv = nni_aio_schedule(aio, nni_win_ipc_conn_cancel, ep)) != 0) { + nni_mtx_unlock(&w->mtx); + nni_aio_finish_error(aio, rv); + return; + } NNI_ASSERT(!nni_list_active(&w->waiters, ep)); ep->con_aio = aio; nni_list_append(&w->waiters, ep); - nni_aio_schedule(aio, nni_win_ipc_conn_cancel, ep); nni_cv_wake(&w->cv); nni_mtx_unlock(&w->mtx); } |
