From 679366445fc5fa0d9ebf0165c5ebbaef397c9280 Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Wed, 15 May 2019 10:48:01 -0700 Subject: [PATCH] Updated server finalizer, so it cleans up named pipe, if its an IPC server. --- microscript/ILibDuktape_net.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/microscript/ILibDuktape_net.c b/microscript/ILibDuktape_net.c index 98571b4..e75bead 100644 --- a/microscript/ILibDuktape_net.c +++ b/microscript/ILibDuktape_net.c @@ -1251,6 +1251,17 @@ duk_ret_t ILibDuktape_net_server_Finalizer(duk_context *ctx) ILibAsyncServerSocket_RemoveFromChain(server->server); } +#ifdef WIN32 + ILibDuktape_net_WindowsIPC *ipc = Duktape_GetBufferProperty(ctx, 0, ILibDuktape_net_WindowsIPC_Buffer); + if (ipc != NULL && ipc->mPipeHandle != NULL && ipc->overlapped.hEvent != NULL) + { + ILibProcessPipe_WaitHandle_Remove(ipc->manager, ipc->overlapped.hEvent); + CloseHandle(ipc->mPipeHandle); + CloseHandle(ipc->overlapped.hEvent); + ipc->overlapped.hEvent = NULL; + } +#endif + return 0; } duk_ret_t ILibDuktape_net_server_address(duk_context *ctx)