Kernel/debug - Clean up Debug() method, bind to #define config
[tpg/acess2.git] / Tools / nativelib / threads.c
index cc508fb..f804473 100644 (file)
@@ -5,6 +5,7 @@
  * threads.c
  * - Threads handling
  */
+#define DEBUG  0
 #include <acess.h>
 #include <threads.h>
 #include <threads_int.h>
@@ -39,9 +40,12 @@ tGID Threads_GetGID(void) { return 0; }
 
 tTID Threads_GetTID(void) { return lpThreads_This ? lpThreads_This->TID : 0; }
 
-int *Threads_GetMaxFD(void)        { return &lpThreads_This->Process->MaxFDs;  }
-char **Threads_GetCWD(void)        { return &lpThreads_This->Process->CWD;     }
-char **Threads_GetChroot(void)     { return &lpThreads_This->Process->Chroot;  }
+static inline tProcess* getproc(tProcess *Process) {
+       return (Process ? Process : lpThreads_This->Process);
+}
+int *Threads_GetMaxFD(tProcess *Process)       { return &getproc(Process)->MaxFDs;  }
+char **Threads_GetCWD(tProcess *Process)        { return &getproc(Process)->CWD;     }
+char **Threads_GetChroot(tProcess *Process)     { return &getproc(Process)->Chroot;  }
 void **Threads_GetHandlesPtr(void) { return &lpThreads_This->Process->Handles; }
 
 void Threads_Yield(void)
@@ -84,6 +88,7 @@ void Threads_AddActive(tThread *Thread)
 {
        Thread->Status = THREAD_STAT_ACTIVE;
        // Increment state-change semaphore
+       LOG("Waking %p(%i %s)", Thread, Thread->TID, Thread->ThreadName);
        Threads_int_SemSignal(Thread->WaitSemaphore);
 }
 
@@ -149,6 +154,7 @@ void Threads_int_WaitForStatusEnd(enum eThreadStatus Status)
                        Log_Warning("Threads", "Thread %p(%i %s) rescheduled while in %s state",
                                us, us->TID, us->ThreadName, casTHREAD_STAT[Status]);
        }
+       LOG("%p(%i %s) Awake", us, us->TID, us->ThreadName);
 }
 
 int Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, tThread **ListHead, tThread **ListTail, tShortSpinlock *Lock)

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