Sebastian Lackner : kernel32: Forward SleepConditionVariableSRW to ntdll.

Alexandre Julliard julliard at winehq.org
Mon Jan 27 13:32:53 CST 2014


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

Author: Sebastian Lackner <sebastian at fds-team.de>
Date:   Wed Jan 22 01:09:49 2014 +0100

kernel32: Forward SleepConditionVariableSRW to ntdll.

---

 dlls/kernel32/kernel32.spec |    1 +
 dlls/kernel32/sync.c        |   18 ++++++++++++++++++
 include/winbase.h           |    1 +
 3 files changed, 20 insertions(+)

diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index 3bb4255..f7f3320 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -1196,6 +1196,7 @@
 @ stdcall SizeofResource(long long)
 @ stdcall Sleep(long)
 @ stdcall SleepConditionVariableCS(ptr ptr long)
+@ stdcall SleepConditionVariableSRW(ptr ptr long long)
 @ stdcall SleepEx(long long)
 @ stdcall SuspendThread(long)
 @ stdcall SwitchToFiber(ptr)
diff --git a/dlls/kernel32/sync.c b/dlls/kernel32/sync.c
index 2b7f4b0..f77637c 100644
--- a/dlls/kernel32/sync.c
+++ b/dlls/kernel32/sync.c
@@ -2339,3 +2339,21 @@ BOOL WINAPI SleepConditionVariableCS( CONDITION_VARIABLE *variable, CRITICAL_SEC
     }
     return TRUE;
 }
+
+/***********************************************************************
+ *           SleepConditionVariableSRW   (KERNEL32.@)
+ */
+BOOL WINAPI SleepConditionVariableSRW( RTL_CONDITION_VARIABLE *variable, RTL_SRWLOCK *lock, DWORD timeout, ULONG flags )
+{
+    NTSTATUS status;
+    LARGE_INTEGER time;
+
+    status = RtlSleepConditionVariableSRW( variable, lock, get_nt_timeout( &time, timeout ), flags );
+
+    if (status != STATUS_SUCCESS)
+    {
+        SetLastError( RtlNtStatusToDosError(status) );
+        return FALSE;
+    }
+    return TRUE;
+}
diff --git a/include/winbase.h b/include/winbase.h
index 3c620e4..2d01c45 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -2363,6 +2363,7 @@ WINBASEAPI DWORD       WINAPI SignalObjectAndWait(HANDLE,HANDLE,DWORD,BOOL);
 WINBASEAPI DWORD       WINAPI SizeofResource(HMODULE,HRSRC);
 WINBASEAPI VOID        WINAPI Sleep(DWORD);
 WINBASEAPI BOOL        WINAPI SleepConditionVariableCS(PCONDITION_VARIABLE,PCRITICAL_SECTION,DWORD);
+WINBASEAPI BOOL        WINAPI SleepConditionVariableSRW(PCONDITION_VARIABLE,PSRWLOCK,DWORD,ULONG);
 WINBASEAPI DWORD       WINAPI SleepEx(DWORD,BOOL);
 WINBASEAPI DWORD       WINAPI SuspendThread(HANDLE);
 WINBASEAPI void        WINAPI SwitchToFiber(LPVOID);




More information about the wine-cvs mailing list