Date: Mon, 21 Mar 2005 23:01:30 +0000 (UTC) From: Ian Dowse <iedowse@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/share/man/man9 Makefile timeout.9 src/sys/kern kern_timeout.c Message-ID: <200503212301.j2LN1Uqk084500@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503212301.j2LN1Uqk084500>
