0.9.5.55: hundred to ways to leave a thread
authorGabor Melis <mega@hotpop.com>
Thu, 13 Oct 2005 09:48:43 +0000 (09:48 +0000)
committerGabor Melis <mega@hotpop.com>
Thu, 13 Oct 2005 09:48:43 +0000 (09:48 +0000)
  * but don't call gc_alloc_update_page_tables on thread exit with gc
    running in another thread

src/runtime/thread.c
version.lisp-expr

index c6d2ad5..f881296 100644 (file)
@@ -202,10 +202,10 @@ new_thread_trampoline(struct thread *th)
     /* SIG_STOP_FOR_GC is blocked and GC might be waiting for this
      * thread, but since we are already dead it won't wait long. */
     pthread_mutex_lock(&all_threads_lock);
+    gc_alloc_update_page_tables(0, &th->alloc_region);
     unlink_thread(th);
     pthread_mutex_unlock(&all_threads_lock);
 
-    gc_alloc_update_page_tables(0, &th->alloc_region);
     if(th->tls_cookie>=0) arch_os_thread_cleanup(th);
     os_invalidate((os_vm_address_t)th->interrupt_data,
                   (sizeof (struct interrupt_data)));
index 0ef37b1..abff96c 100644 (file)
@@ -17,4 +17,4 @@
 ;;; checkins which aren't released. (And occasionally for internal
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
-"0.9.5.54"
+"0.9.5.55"