Date: Sun, 06 Feb 2005 19:19:02 -0800 From: Nate Lawson <nate@root.org> To: Ian Dowse <iedowse@FreeBSD.org> Cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/share/man/man9 Makefile timeout.9 src/sys/sys callout.h src/sys/kern kern_timeout.c Message-ID: <4206DE26.5000104@root.org> In-Reply-To: <20050207024741.786A016A570@hub.freebsd.org> References: <20050207024741.786A016A570@hub.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
This is wonderful, thank you! Ian Dowse wrote: > iedowse 2005-02-07 02:47:33 UTC > > FreeBSD src repository > > Modified files: > share/man/man9 Makefile timeout.9 > sys/sys callout.h > sys/kern kern_timeout.c > Log: > Add a mechanism for associating a mutex with a callout when the > callout is first initialised, using a new function callout_init_mtx(). > The callout system will acquire this mutex before calling the callout > function and release it on return. > > In addition, the callout system uses the mutex to avoid most of the > complications and race conditions inherent in asynchronous timer > facilities, so mutex-protected callouts have much simpler semantics. > As long as the mutex 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. > > Existing Giant-locked callouts will automatically pick up the new > race-free semantics. This should close a number of race conditions > in the USB code and probably other areas of the kernel too. > > There should be no change in behaviour for "MP-safe" callouts; these > still need to use the techniques mentioned in timeout(9) to avoid > race conditions. > > Revision Changes Path > 1.253 +6 -1 src/share/man/man9/Makefile > 1.27 +50 -1 src/share/man/man9/timeout.9 > 1.96 +106 -15 src/sys/kern/kern_timeout.c > 1.28 +5 -0 src/sys/sys/callout.h -- Nate
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4206DE26.5000104>