Jacek Caban : server: Signal pipe server fd in create_pipe_server.

Alexandre Julliard julliard at winehq.org
Fri Dec 2 17:00:09 CST 2016


Module: wine
Branch: master
Commit: d8bfbbdc07f7562e8ab3283ac160f94b428ade75
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d8bfbbdc07f7562e8ab3283ac160f94b428ade75

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Dec  2 13:37:59 2016 +0100

server: Signal pipe server fd in create_pipe_server.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 55d05c1..d93c40f 100644
--- a/server/named_pipe.c
+++ b/server/named_pipe.c
@@ -690,6 +690,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;
 }




More information about the wine-cvs mailing list