Skip site navigation (1)Skip section navigation (2)
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>