cvs commit: src/share/man/man9 Makefile timeout.9 src/sys/kern kern_timeout.c

Ian Dowse iedowse at FreeBSD.org
Mon Mar 21 15:01:30 PST 2005


iedowse     2005-03-21 23:01:30 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_5)
    share/man/man9       timeout.9 Makefile 
    sys/kern             kern_timeout.c 
  Log:
  Partialially MFC the changes to the callout system that prevent
  race conditions when stopping and resetting timers. This only avoids
  the race conditions with Giant-locked callouts; it was not possible
  to backport callout_init_mtx() since adding the c_mtx field to
  struct callout would have changed the callout ABI.
  
  Giant-locked callouts will now have much simpler semantics. As long
  as Giant is held when invoking callout_stop() or callout_reset(),
  then these functions will guarantee that the callout will be stopped,
  even if softclock() had already begun to process the callout.
  
  There should be no change in behaviour for "MP-safe" callouts; these
  still need to use the techniques now described in timeout(9) to
  avoid race conditions.
  
  Approved by:    re (kensmith)
  
  Revision   Changes    Path
  1.239.2.8  +3 -0      src/share/man/man9/Makefile
  1.23.2.2   +252 -9    src/share/man/man9/timeout.9
  1.91.2.2   +52 -8     src/sys/kern/kern_timeout.c


More information about the cvs-src mailing list