Rob Shearman : ole32: Process messages while waiting for a local server to create a pipe.

Alexandre Julliard julliard at winehq.org
Fri Dec 7 13:19:11 CST 2007


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

Author: Rob Shearman <rob at codeweavers.com>
Date:   Fri Dec  7 14:45:16 2007 +0000

ole32: Process messages while waiting for a local server to create a pipe.

---

 dlls/ole32/rpc.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/ole32/rpc.c b/dlls/ole32/rpc.c
index 40330d4..6760eb8 100644
--- a/dlls/ole32/rpc.c
+++ b/dlls/ole32/rpc.c
@@ -1725,15 +1725,15 @@ HRESULT RPC_GetLocalClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
         WaitNamedPipeW( pipefn, NMPWAIT_WAIT_FOREVER );
         hPipe = CreateFileW(pipefn, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0);
         if (hPipe == INVALID_HANDLE_VALUE) {
+            DWORD index;
             if (tries == 1) {
                 if ( (hres = create_local_service(rclsid)) &&
                      (hres = create_server(rclsid)) )
                     return hres;
-                Sleep(1000);
             } else {
                 WARN("Connecting to %s, no response yet, retrying: le is %u\n", debugstr_w(pipefn), GetLastError());
-                Sleep(1000);
             }
+            CoWaitForMultipleHandles(0, 1000, 0, NULL, &index);
             continue;
         }
         bufferlen = 0;




More information about the wine-cvs mailing list