bug fix
authorbdemsky <bdemsky>
Mon, 9 Mar 2009 18:06:15 +0000 (18:06 +0000)
committerbdemsky <bdemsky>
Mon, 9 Mar 2009 18:06:15 +0000 (18:06 +0000)
Robust/src/Runtime/thread.c

index f25c9d038021097d2eaa6acb9efe0e8c05136cc9..7086ed7155e141cd8b39963ebe8fa90af5a75d04 100644 (file)
@@ -203,10 +203,17 @@ transstart:
 
 #ifdef THREADS
 void CALL01(___Thread______nativeJoin____, struct ___Thread___ * ___this___) {
+#ifdef PRECISE_GC
+    struct listitem *tmp=stopforgc((struct garbagelist *)___params___);
+#endif
   pthread_mutex_lock(&joinlock);
   while(!VAR(___this___)->___finished___)
     pthread_cond_wait(&joincond, &joinlock);
   pthread_mutex_unlock(&joinlock);
+#ifdef PRECISE_GC
+    restartaftergc(tmp);
+#endif
+
 }
 
 void CALL01(___Thread______nativeCreate____, struct ___Thread___ * ___this___) {