[Linux-hls-cvs] hls/hls hls_hooks.c,1.7,1.8
Status: Pre-Alpha
Brought to you by:
lucabe
|
From: <lu...@us...> - 2003-11-29 11:59:04
|
Update of /cvsroot/linux-hls/hls/hls
In directory sc8-pr-cvs1:/tmp/cvs-serv4847/hls
Modified Files:
hls_hooks.c
Log Message:
Fix problem when rmmoving hls_module...
Index: hls_hooks.c
===================================================================
RCS file: /cvsroot/linux-hls/hls/hls/hls_hooks.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** hls_hooks.c 8 Nov 2003 10:34:31 -0000 1.7
--- hls_hooks.c 29 Nov 2003 11:59:00 -0000 1.8
***************
*** 330,333 ****
--- 330,336 ----
HLS_ASSERT (HLSInitState == 1);
HLS_ASSERT (current_task() == Thread);
+ if (current_task() != Thread) {
+ hls_printk("Current Task: %d\tThread: %d\n", current_task()->pid, Thread->pid);
+ }
#ifdef HLS_DEBUG
***************
*** 362,364 ****
--- 365,393 ----
t->CurProc = NO_PROC;
whereami = 0;
+ }
+
+ void hls_block_other_thread(PRKTHREAD Thread)
+ {
+ struct TH_INSTANCE_DATA *t;
+
+ if (whereami != 0) {
+ hls_hard_printk("HLSBlockThreadHook --- WAI = %d [%d]\n", whereami, Thread->pid);
+ hls_printk("HLSBlockThreadHook --- WAI = %d [%d]\n", whereami, Thread->pid);
+ hls_panic("Entering HLSBlockThreadHook with WAI != 0\n");
+ }
+
+ whereami = 6;
+ HLS_ASSERT (HLSInitState == 1);
+
+ t = HLSFindThread(Thread);
+ HLS_ASSERT (t);
+
+ if (t->InState != HLS_Ready) {
+ hls_hard_printk("HYPERERROR!!! Strange internal state [%d]: %x\n", Thread->pid, t->InState);
+ hls_printk("HYPERERROR!!! Strange internal state [%d]: %x\n", Thread->pid, t->InState);
+ }
+ t->InState = HLS_Waiting;
+ t->vp->TopSched->CB->B_VP_Release (t->vp);
+ t->CurProc = NO_PROC;
+ whereami = 0;
}
|