[artf3749] Repaired undefined behavior in takeMultiWait.

Change-Id: Ieae7d602472f585db2a896cc76355a5c23d1d670
This commit is contained in:
James Kuszmaul
2014-11-08 14:27:49 -05:00
parent 19737ba443
commit f67849a9b1
8 changed files with 17 additions and 10 deletions

View File

@@ -61,6 +61,7 @@ DriverStation::DriverStation()
HALSetNewDataSem(m_packetDataAvailableSem);
m_waitForDataSem = initializeMultiWait();
m_waitForDataMutex = initializeMutexNormal();
AddToSingletonList();
@@ -79,6 +80,7 @@ DriverStation::~DriverStation()
// Unregister our semaphore.
HALSetNewDataSem(0);
deleteMutex(m_packetDataAvailableSem);
deleteMutex(m_waitForDataMutex);
}
void DriverStation::InitTask(DriverStation *ds)
@@ -353,7 +355,7 @@ uint32_t DriverStation::GetLocation()
*/
void DriverStation::WaitForData()
{
takeMultiWait(m_waitForDataSem, SEMAPHORE_WAIT_FOREVER);
takeMultiWait(m_waitForDataSem, m_waitForDataMutex, SEMAPHORE_WAIT_FOREVER);
}
/**