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>