* select.c
* - Implements the select() system call (and supporting code)
*
- * TODO: Implment timeouts (via an alarm event?)
* TODO: Remove malloc for read/write queues
*/
#define DEBUG 0
{
LOG("Semaphore_Wait()");
// TODO: Actual timeout
- Threads_WaitEvents( THREAD_EVENT_VFS );
+ Threads_WaitEvents( THREAD_EVENT_VFS|THREAD_EVENT_SIGNAL );
}
else if( *Timeout > 0 )
{
LOG("Timeout %lli ms", *Timeout);
Time_ScheduleTimer( t, *Timeout );
// Wait for the timer or a VFS event
- Threads_WaitEvents( THREAD_EVENT_VFS|THREAD_EVENT_TIMER );
+ Threads_WaitEvents( THREAD_EVENT_VFS|THREAD_EVENT_TIMER|THREAD_EVENT_SIGNAL );
Time_FreeTimer(t);
}
{
LOG("Semaphore_Wait()");
// TODO: Actual timeout
- Threads_WaitEvents( THREAD_EVENT_VFS|ExtraEvents );
+ Threads_WaitEvents( THREAD_EVENT_VFS|THREAD_EVENT_SIGNAL|ExtraEvents );
}
else if( *Timeout > 0 )
{