Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Feb 2004 10:33:09 -0800 (PST)
From:      John Baldwin <jhb@FreeBSD.org>
To:        src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   cvs commit: src/sys/kern subr_sleepqueue.c subr_turnstile.c subr_witness.c src/sys/sys sleepqueue.h
Message-ID:  <200402271833.i1RIX9WU025964@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
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)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200402271833.i1RIX9WU025964>