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