1.0.10.41: Remove unnecessary sched_yield()
authorNIIMI Satoshi <sa2c@users.sourceforge.net>
Wed, 10 Oct 2007 21:36:49 +0000 (21:36 +0000)
committerNIIMI Satoshi <sa2c@users.sourceforge.net>
Wed, 10 Oct 2007 21:36:49 +0000 (21:36 +0000)
Don't call sched_yield() on thread creation and retirement, since
the cost of sched_yield() is very high on FreeBSD 7.

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

index 7c85b3e..9044dfd 100644 (file)
@@ -235,7 +235,6 @@ create_cleanup_thread(struct thread *thread_to_be_cleaned_up)
             (os_vm_address_t) thread_to_be_cleaned_up->os_address;
         result = pthread_create(&thread, NULL, cleanup_thread, freeable);
         gc_assert(result == 0);
-        sched_yield();
     }
 }
 
@@ -368,10 +367,6 @@ 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.  SPACES must be page-aligned, since the GC expects the
index a66324a..f10cb66 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.10.40"
+"1.0.10.41"