Makes HALSetDataSem take a MULTIWAIT_ID rather then a NATIVE_MULTIWAIT_ID

Having the HAL take a NATIVE_MULTIWAIT_ID without any way to get that
structure from extern "C" code is a problem. This makes it so it just
takes a MULTIWAIT_ID, and then grabs the native handle inside the HAL.

Change-Id: I06da18ba34adcea2f16e4e53da672f38be79e28e
Signed-off-by: Dustin Spicuzza <dustin@virtualroadside.com>
This commit is contained in:
Thad House
2015-11-15 21:24:03 -08:00
committed by Peter Johnson (294)
parent de39877efb
commit 2f2184e8ce
7 changed files with 25 additions and 27 deletions

View File

@@ -9,7 +9,7 @@ TLogLevel semaphoreLogLevel = logDEBUG;
if (level > semaphoreLogLevel) ; \
else Log().Get(level)
MUTEX_ID initializeMutexNormal() { return new std::mutex; }
MUTEX_ID initializeMutexNormal() { return new priority_mutex; }
void deleteMutex(MUTEX_ID sem) { delete sem; }
@@ -30,12 +30,12 @@ bool tryTakeMutex(MUTEX_ID mutex) { return mutex->try_lock(); }
*/
void giveMutex(MUTEX_ID mutex) { mutex->unlock(); }
MULTIWAIT_ID initializeMultiWait() { return new std::condition_variable; }
MULTIWAIT_ID initializeMultiWait() { return new priority_condition_variable; }
void deleteMultiWait(MULTIWAIT_ID cond) { delete cond; }
void takeMultiWait(MULTIWAIT_ID cond, MUTEX_ID m) {
std::unique_lock<std::mutex> lock(*m);
std::unique_lock<priority_mutex> lock(*m);
cond->wait(lock);
}