diff options
Diffstat (limited to 'src/platform/windows/win_ipc.c')
| -rw-r--r-- | src/platform/windows/win_ipc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/platform/windows/win_ipc.c b/src/platform/windows/win_ipc.c index 1a672c70..85e3dfca 100644 --- a/src/platform/windows/win_ipc.c +++ b/src/platform/windows/win_ipc.c @@ -1,5 +1,6 @@ // // Copyright 2017 Garrett D'Amore <garrett@damore.org> +// Copyright 2017 Capitar IT Group BV <info@capitar.com> // // This software is supplied under the terms of the MIT License, a // copy of which should be located in the distribution where this @@ -333,7 +334,10 @@ nni_win_ipc_acc_finish(nni_win_event *evt, nni_aio *aio) } aio->a_pipe = pipe; - nni_aio_finish(aio, 0, 0); + // What if the pipe is already finished? + if (nni_aio_finish(aio, 0, 0) != 0) { + nni_plat_ipc_pipe_fini(pipe); + } } static void @@ -559,8 +563,8 @@ nni_plat_ipc_ep_close(nni_plat_ipc_ep *ep) break; case NNI_EP_MODE_LISTEN: + nni_win_event_close(&ep->acc_ev); if (ep->p != INVALID_HANDLE_VALUE) { - nni_win_event_close(&ep->acc_ev); CloseHandle(ep->p); ep->p = INVALID_HANDLE_VALUE; } |
