1.0.0.30: Stability fix of threading on FreeBSD
authorsa2c <sa2c>
Fri, 15 Dec 2006 01:16:36 +0000 (01:16 +0000)
committersa2c <sa2c>
Fri, 15 Dec 2006 01:16:36 +0000 (01:16 +0000)
Yield current thread on thread creation so that clean-up threads can
run.  This fixes some test failures on FreeBSD 7.

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

index a99056f..e529c7d 100644 (file)
@@ -350,6 +350,10 @@ create_thread_struct(lispobj initial_function) {
     int i;
 #endif
 
+#ifdef CREATE_CLEANUP_THREAD
+    /* Give a chance for cleanup threads to run. */
+    sched_yield();
+#endif
     /* may as well allocate all the spaces at once: it saves us from
      * having to decide what to do if only some of the allocations
      * succeed */
index 81a6319..37de098 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".)
-"1.0.0.29"
+"1.0.0.30"