Kernel/Heap - (minor) Commenting spellfixes
[tpg/acess2.git] / KernelLand / Kernel / vfs / select.c
index 8bd0deb..d4c5cd8 100644 (file)
@@ -5,7 +5,6 @@
  * 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
@@ -89,7 +88,7 @@ int VFS_SelectNode(tVFS_Node *Node, int TypeFlags, tTime *Timeout, const char *N
        {
                LOG("Semaphore_Wait()");
                // TODO: Actual timeout
-               Threads_WaitEvents( THREAD_EVENT_VFS );
+               Threads_WaitEvents( THREAD_EVENT_VFS|THREAD_EVENT_SIGNAL );
        }
        else if( *Timeout > 0 )
        {
@@ -100,7 +99,7 @@ int VFS_SelectNode(tVFS_Node *Node, int TypeFlags, tTime *Timeout, const char *N
                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);
        }
        
@@ -113,6 +112,7 @@ int VFS_SelectNode(tVFS_Node *Node, int TypeFlags, tTime *Timeout, const char *N
                if( !(TypeFlags & (1 << type)) )        continue;
                VFS_int_Select_GetType(type, Node, &list, &flag, &wanted, &maxAllowed);
                LOG("VFS_int_Select_RemThread()");
+               ASSERT(*list);
                VFS_int_Select_RemThread(*list, thisthread);
                ret = ret || *flag == wanted;
        }
@@ -165,7 +165,7 @@ int VFS_Select(int MaxHandle, fd_set *ReadHandles, fd_set *WriteHandles, fd_set
        {
                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 )
        {
@@ -446,7 +446,6 @@ int VFS_int_Select_AddThread(tVFS_SelectList *List, tThread *Thread, int MaxAllo
 
 void VFS_int_Select_RemThread(tVFS_SelectList *List, tThread *Thread)
 {
-        int    i;
        tVFS_SelectListEnt      *block, *prev = NULL;
        
        ENTER("pList pThread", List, Thread);
@@ -459,7 +458,7 @@ void VFS_int_Select_RemThread(tVFS_SelectList *List, tThread *Thread)
        // Look for the thread
        do
        {
-               for( i = 0; i < NUM_THREADS_PER_ALLOC; i ++ )
+               for( int i = 0; i < NUM_THREADS_PER_ALLOC; i ++ )
                {
                        if( block->Threads[i] == Thread )
                        {

UCC git Repository :: git.ucc.asn.au