newThread->SavedState.EIP = eip;
// Lock list and add to active
- LOCK( &giThreadListLock );
- newThread->Next = gActiveThreads;
- gActiveThreads = newThread;
- giNumActiveThreads ++;
- giTotalTickets += newThread->NumTickets;
- RELEASE( &giThreadListLock );
+ Threads_AddActive(newThread);
Threads_Dump();
extern tThread *Proc_GetCurThread();
extern tThread *Threads_GetThread(Uint TID);
extern void Threads_Wake(tThread *Thread);
+extern void Threads_AddActive(tThread *Thread);
#endif
void Threads_Yield();
void Threads_Sleep();
void Threads_Wake(tThread *Thread);
+void Threads_AddActive(tThread *Thread);
int Threads_GetPID();
int Threads_GetTID();
int Threads_GetUID();
}
}
+/**
+ * \fn void Threads_AddActive(tThread *Thread)
+ * \brief Adds a thread to the active queue
+ */
+void Threads_AddActive(tThread *Thread)
+{
+ LOCK( &giThreadListLock );
+ Thread->Next = gActiveThreads;
+ gActiveThreads = Thread;
+ giNumActiveThreads ++;
+ giTotalTickets += Thread->NumTickets;
+ Log("Threads_AddActive: giNumActiveThreads = %i, giTotalTickets = %i",
+ giNumActiveThreads, giTotalTickets);
+ RELEASE( &giThreadListLock );
+}
+
#if 0
/**
* \fn void Threads_SetSignalHandler(int Num, void *Handler)