threading bugs fixed
authorcacao <none@none>
Sun, 13 Dec 1998 20:33:44 +0000 (20:33 +0000)
committercacao <none@none>
Sun, 13 Dec 1998 20:33:44 +0000 (20:33 +0000)
mm/heap2.c

index abd4120d5a3cd2a45ec86c184551e93aa2982fa5..10ed06bf4515c72bf48068351fee3043c18912a5 100644 (file)
@@ -905,11 +905,15 @@ void
 gc_call (void)
 {
 #ifdef USE_THREADS
+       u1 dummy;
+
        assert(blockInts == 0);
 
        intsDisable();
-       if (currentThread == NULL || currentThread == mainThread)
+       if (currentThread == NULL || currentThread == mainThread) {
+               CONTEXT(mainThread).usedStackTop = &dummy;
                gc_run();
+               }
        else
                asm_switchstackandcall(CONTEXT(mainThread).usedStackTop, gc_run,
                                                           (void**)&(CONTEXT(currentThread).usedStackTop));