K 10 svn:author V 7 iedowse K 8 svn:date V 27 2005-03-21T23:01:30.000000Z K 7 svn:log V 767 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) END