OSDN Git Service

Declare CONDITION_VARIABLE API, per feature request [#2314]
authorKeith Marshall <keithmarshall@users.sourceforge.net>
Wed, 31 May 2017 13:21:20 +0000 (14:21 +0100)
committerKeith Marshall <keithmarshall@users.sourceforge.net>
Wed, 31 May 2017 13:21:20 +0000 (14:21 +0100)
w32api/ChangeLog
w32api/include/winbase.h

index 73022e8..bc79c12 100644 (file)
@@ -1,3 +1,13 @@
+2017-05-31  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Declare CONDITION_VARIABLE API, per feature request [#2314]
+
+       * include/winbase.h [_WIN32_WINNT >= _WIN32_WINNT_VISTA]
+       (CONDITION_VARIABLE, PCONDITION_VARIABLE): Define data types, and...
+       (InitializeConditionVariable, SleepConditionVariableCS)
+       (SleepConditionVariableSRW, WakeAllConditionVariable)
+       (WakeConditionVariable): ...declare prototypes.
+
 2017-05-29  Keith Marshall  <keithmarshall@users.sourceforge.net>
 
        Declare SRWLOCK API, to support feature request [#2314]
index dc541f2..f053cc6 100644 (file)
@@ -3017,6 +3017,18 @@ void WINAPI AcquireSRWLockShared (PSRWLOCK);
 void WINAPI ReleaseSRWLockExclusive (PSRWLOCK);
 void WINAPI ReleaseSRWLockShared (PSRWLOCK);
 
+/* https://msdn.microsoft.com/en-us/library/ms682052%28v=vs.85%29.aspx */
+/* Note: once again, MSDN fails to document this, but an opaque generic
+ * pointer type appears to suffice.
+ */
+typedef PVOID CONDITION_VARIABLE, *PCONDITION_VARIABLE;
+
+void WINAPI InitializeConditionVariable (PCONDITION_VARIABLE);
+BOOL WINAPI SleepConditionVariableCS (PCONDITION_VARIABLE, PCRITICAL_SECTION, DWORD);
+BOOL WINAPI SleepConditionVariableSRW (PCONDITION_VARIABLE, PSRWLOCK, DWORD, ULONG);
+void WINAPI WakeAllConditionVariable (PCONDITION_VARIABLE);
+void WINAPI WakeConditionVariable (PCONDITION_VARIABLE);
+
 #if _WIN32_WINNT >= _WIN32_WINNT_WIN7
 /* Additional features, available only on the WinNT series platforms, from
  * the release of Windows-7 onwards.