Ich habe alle Stellen ausgetauscht gegen SRWLOCK und CONDITION_VARIABLE, die seit Windows 2008 bzw. Vista unterstützt werden (nicht unter XP oder W2003 bzw. älter). Der neue Code ist fast identisch zu dem Alten.
<presource lang="cpp">
SRWLOCK reentrant_block
SRWLOCK cond_write_srw;
{
AcquireSRWLockShared(&reentrant_block);
//...
ReleaseSRWLockShared(&reentrant_block);
}
BOOL ret = SleepConditionVariableSRW(&cond_write_possible, &cond_write_srw, timeoutMS, CONDITION_VARIABLE_LOCKMODE_SHARED);
//... // Hier muss noch ret ausgewertet werden //... // geschützter Code
ReleaseSRWLockShared(&cond_write_srw);
}
 </presource>
== Ergebnis Win32API ==
Änderungen – Software Entwicklung Projekte

Änderungen