From: Jacek Caban Subject: [PATCH 06/10] server: Signal pipe server fd in create_pipe_server. Message-Id: Date: Wed, 23 Nov 2016 11:52:37 +0100 Signed-off-by: Jacek Caban --- dlls/kernel32/tests/pipe.c | 8 ++++++++ server/named_pipe.c | 1 + 2 files changed, 9 insertions(+) diff --git a/dlls/kernel32/tests/pipe.c b/dlls/kernel32/tests/pipe.c index 6c311a4..28bac91 100644 --- a/dlls/kernel32/tests/pipe.c +++ b/dlls/kernel32/tests/pipe.c @@ -110,6 +110,13 @@ static BOOL RpcReadFile(HANDLE hFile, LPVOID buffer, DWORD bytesToRead, LPDWORD return (BOOL)rpcargs.returnValue; } +#define test_signaled(h) _test_signaled(__LINE__,h) +static void _test_signaled(unsigned line, HANDLE handle) +{ + DWORD res = WaitForSingleObject(handle, 0); + ok_(__FILE__,line)(res == WAIT_OBJECT_0, "WaitForSingleObject returned %u\n", res); +} + static void test_CreateNamedPipe(int pipemode) { HANDLE hnp; @@ -176,6 +183,7 @@ static void test_CreateNamedPipe(int pipemode) /* nDefaultWait */ NMPWAIT_USE_DEFAULT_WAIT, /* lpSecurityAttrib */ NULL); ok(hnp != INVALID_HANDLE_VALUE, "CreateNamedPipe failed\n"); + test_signaled(hnp); ret = WaitNamedPipeA(PIPENAME, 2000); ok(ret, "WaitNamedPipe failed (%d)\n", GetLastError()); diff --git a/server/named_pipe.c b/server/named_pipe.c index ad3d58e..e8a5a19 100644 --- a/server/named_pipe.c +++ b/server/named_pipe.c @@ -710,6 +710,7 @@ static struct pipe_server *create_pipe_server( struct named_pipe *pipe, unsigned release_object( server ); return NULL; } + set_fd_signaled( server->ioctl_fd, 1 ); set_server_state( server, ps_idle_server ); return server; }