cvs commit: src/sys/kern kern_condvar.c kern_synch.c subr_sleepqueue.c

Jeff Roberson jeff at
Mon Jun 4 23:50:57 UTC 2007

jeff        2007-06-04 23:50:57 UTC

  FreeBSD src repository

  Modified files:
    sys/kern             kern_condvar.c kern_synch.c 
  Commit 2/14 of sched_lock decomposition.
   - Adapt sleepqueues to the new thread_lock() mechanism.
   - Delay assigning the sleep queue spinlock as the thread lock until after
     we've checked for signals.  It is illegal for a thread to return in
     mi_switch() with any lock assigned to td_lock other than the scheduler
   - Change sleepq_catch_signals() to do the switch if necessary to simplify
     the callers.
   - Simplify timeout handling now that locking a sleeping thread has the
     side-effect of locking the sleepqueue.  Some previous races are no
     longer possible.
  Tested by:      kris, current@
  Tested on:      i386, amd64, ULE, 4BSD, libthr, libkse, PREEMPTION, etc.
  Discussed with: kris, attilio, kmacy, jhb, julian, bde (small parts each)
  Revision  Changes    Path
  1.62      +2 -2      src/sys/kern/kern_condvar.c
  1.300     +7 -7      src/sys/kern/kern_synch.c
  1.37      +97 -106   src/sys/kern/subr_sleepqueue.c

More information about the cvs-src mailing list