cvs commit: src/sys/kern subr_sleepqueue.c subr_turnstile.c subr_witness.c src/sys/sys sleepqueue.h

John Baldwin jhb at FreeBSD.org
Fri Feb 27 10:33:10 PST 2004


jhb         2004/02/27 10:33:09 PST

  FreeBSD src repository

  Modified files:
    sys/kern             subr_turnstile.c subr_witness.c 
  Added files:
    sys/kern             subr_sleepqueue.c 
    sys/sys              sleepqueue.h 
  Log:
  Add an implementation of a generic sleep queue abstraction that is used
  to queue threads sleeping on a wait channel similar to how turnstiles are
  used to queue threads waiting for a lock.  This subsystem will be used as
  the backend for sleep/wakeup and condition variables initially.  Eventually
  it will also be used to replace the ithread-specific iwait thread
  inhibitor.
  
  Sleep queues are also not locked by sched_lock, so this splits sched_lock
  up a bit further increasing concurrency within the scheduler.  Sleep queues
  also natively support timeouts on sleeps and interruptible sleeps allowing
  for the reduction of a lot of duplicated code between the sleep/wakeup and
  condition variable implementations.  For more details on the sleep queue
  implementation, check the comments in sys/sleepqueue.h and
  kern/subr_sleepqueue.c.
  
  Revision  Changes    Path
  1.1       +776 -0    src/sys/kern/subr_sleepqueue.c (new)
  1.140     +0 -5      src/sys/kern/subr_turnstile.c
  1.170     +1 -0      src/sys/kern/subr_witness.c
  1.1       +107 -0    src/sys/sys/sleepqueue.h (new)


More information about the cvs-src mailing list