git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Kernel - Replaced for(;;); in panic with HALT_CPU macro
[tpg/acess2.git]
/
KernelLand
/
Kernel
/
threads.c
diff --git
a/KernelLand/Kernel/threads.c
b/KernelLand/Kernel/threads.c
index
21dc055
..
1781f69
100644
(file)
--- a/
KernelLand/Kernel/threads.c
+++ b/
KernelLand/Kernel/threads.c
@@
-49,7
+49,7
@@
void Threads_Delete(tThread *Thread);
char *Threads_GetName(tTID ID);
#if 0
void Threads_SetPriority(tThread *Thread, int Pri);
char *Threads_GetName(tTID ID);
#if 0
void Threads_SetPriority(tThread *Thread, int Pri);
-tThread *Threads_CloneTCB(Uint
*Err, Uint
Flags);
+tThread *Threads_CloneTCB(Uint Flags);
int Threads_WaitTID(int TID, int *status);
tThread *Threads_GetThread(Uint TID);
#endif
int Threads_WaitTID(int TID, int *status);
tThread *Threads_GetThread(Uint TID);
#endif
@@
-59,9
+59,7
@@
void Threads_int_AddToList(tThreadList *List, tThread *Thread);
void Threads_Exit(int TID, int Status);
void Threads_Kill(tThread *Thread, int Status);
void Threads_Yield(void);
void Threads_Exit(int TID, int Status);
void Threads_Kill(tThread *Thread, int Status);
void Threads_Yield(void);
-#endif
-void Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, tThread **ListHead, tThread **ListTail, tShortSpinlock *Lock);
-#if 0
+ int Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, tThread **ListHead, tThread **ListTail, tShortSpinlock *Lock);
void Threads_Sleep(void);
int Threads_Wake(tThread *Thread);
void Threads_AddActive(tThread *Thread);
void Threads_Sleep(void);
int Threads_Wake(tThread *Thread);
void Threads_AddActive(tThread *Thread);
@@
-754,7
+752,7
@@
void Threads_int_WaitForStatusEnd(enum eThreadStatus Status)
}
}
}
}
-
void
Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, tThread **ListHead, tThread **ListTail, tShortSpinlock *Lock)
+
int
Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, tThread **ListHead, tThread **ListTail, tShortSpinlock *Lock)
{
SHORTLOCK( &glThreadListLock );
tThread *us = Threads_RemActive();
{
SHORTLOCK( &glThreadListLock );
tThread *us = Threads_RemActive();
@@
-768,12
+766,11
@@
void Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, tThread **
if( ListTail ) {
if(*ListTail) {
(*ListTail)->Next = us;
if( ListTail ) {
if(*ListTail) {
(*ListTail)->Next = us;
- *ListTail = us;
}
else {
*ListHead = us;
}
else {
*ListHead = us;
- *ListTail = us;
}
}
+ *ListTail = us;
}
else {
*ListHead = us;
}
else {
*ListHead = us;
@@
-783,8
+780,10
@@
void Threads_int_Sleep(enum eThreadStatus Status, void *Ptr, int Num, tThread **
// return ;
SHORTREL( &glThreadListLock );
if( Lock )
// return ;
SHORTREL( &glThreadListLock );
if( Lock )
- SHORT
LOCK
( Lock );
+ SHORT
REL
( Lock );
Threads_int_WaitForStatusEnd(Status);
Threads_int_WaitForStatusEnd(Status);
+ us->WaitPointer = NULL;
+ return us->RetStatus;
}
/**
}
/**
UCC
git Repository :: git.ucc.asn.au