// === CODE ===
void Threads_PostEvent(tThread *Thread, Uint32 EventMask)
{
- // TODO: Check that only one bit is set?
+ // Sanity checking
+ if( !Thread ) return ;
if( EventMask == 0 ) return ;
+ // TODO: Check that only one bit is set?
SHORTLOCK( &Thread->IsLocked );
SHORTREL( &Thread->IsLocked );
}
+/**
+ * \brief Wait for an event to occur
+ */
Uint32 Threads_WaitEvents(Uint32 EventMask)
{
Uint32 rv;
// Check if a wait is needed
SHORTLOCK( &us->IsLocked );
- if( !(us->EventState & EventMask) )
+ while( !(us->EventState & EventMask) )
{
// Wait
us->RetStatus = EventMask; // HACK: Store EventMask in RetStatus