Commit Graph

31 Commits

Author SHA1 Message Date
John Baldwin
267b051a81 - Use .fn to markup untimeout in two places it was missing.
- Reword a confusing sentence.

PR:		docs/89810
Submitted by:	Marius Nuennerich marius dot nuennerich at gmx dot net
MFC after:	3 days
2005-12-01 19:16:35 +00:00
Ruslan Ermilov
78ad54210f -mdoc sweep. 2005-11-18 10:56:28 +00:00
Gleb Smirnoff
d04304d155 Make callout_reset() return a non-zero value if a pending callout
was rescheduled. If there was no pending callout, then return 0.

Reviewed by:	iedowse, cperciva
2005-09-08 14:20:39 +00:00
Ruslan Ermilov
4f06896130 Assorted markup fixes and minor wordsmithing.
Approved by:	re
2005-06-15 13:31:23 +00:00
Ian Dowse
98c926b20f 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.
2005-02-07 02:47:33 +00:00
Ruslan Ermilov
cae0500fd4 Fixed whitespace at EOL and double word.
Uncompact enumaration to make it look better.
2005-01-28 21:18:14 +00:00
Ian Dowse
641a1aa10d Attempt to describe the race conditions that must be considered
when using the callout subsystem. Show how the callout_pending(),
callout_active() and callout_deactivate() macros can be used to
achieve simpler race-free callout semantics in many situations.
2005-01-23 17:42:48 +00:00
Gleb Smirnoff
e5f8af4e5c Document callout_pending() macro.
MFC after:	1 week
2004-12-29 08:01:24 +00:00
Ruslan Ermilov
bf7f20c2b6 Assorted markup, spelling, and grammar fixes. 2004-06-16 08:33:57 +00:00
Hiten Pandya
d5a8819cb7 mdoc(7) police:
* correctly place parenthisized sentences
	* remove hard sentence breaks
	* use .Vt instead of .Fn
2004-05-05 10:47:19 +00:00
Colin Percival
2c1bb20746 Introduce a callout_drain() function. This acts in the same manner as
callout_stop(), except that if the callout being stopped is currently
in progress, it blocks attempts to reset the callout and waits until the
callout is completed before it returns.

This makes it possible to clean up callout-using code safely, e.g.,
without potentially freeing memory which is still being used by a callout.

Reviewed by:	mux, gallatin, rwatson, jhb
2004-04-06 23:08:49 +00:00
Warner Losh
6e8666a5a8 Looks like I misread the callout code. We do not seem to hold the
callout lock while the callout is happening.  So the serialization
that I thought was happening isn't.  Therefore, remove the part of the
bugs that says this.  Leave in the other bug as it is very hard to
work around (impossible?).

Fix various typos.

Also note that timeout/untimeout are considered to be the old interface and
the callout interface should be used insetad.

Submitted by: bde (first two) and wollman (third)
2003-10-01 21:32:42 +00:00
Warner Losh
de78273e9c Document the implications of the callout_stop() returning 0 if the
callout has finished or is in progress.  Also document that the
locking of the callout code for FreeBSD 5 has eliminated the 'or is in
progress' clause as a possibility and that such elimination is an
accident of the implementation and shouldn't be relied upon.
2003-10-01 05:48:48 +00:00
Ruslan Ermilov
32eef9aeb1 mdoc(7) police: Use the new .In macro for #include statements. 2001-10-01 16:09:29 +00:00
John Baldwin
6f2d81026c - callout_stop() now returns an integer value instead of void so
describe it.
- Add a return values section.
2001-08-23 23:52:59 +00:00
Ruslan Ermilov
753d686d34 mdoc(7) police: s/BSD/.Bx/ where appropriate. 2001-08-14 10:01:54 +00:00
Jens Schweikhardt
c1f3e4bf21 Removed whitespace at end-of-line; no content changes. I simply did
cd src/share; find man[1-9] -type f|xargs perl -pi -e 's/[ \t]+$//'

BTW, what editors are the culprits? I'm using vim and it shows
me whitespace at EOL in troff files with a thick blue block...

Reviewed by:	Silence from cvs diff -b
MFC after:	7 days
2001-07-14 19:41:16 +00:00
Ruslan Ermilov
3d45e180f4 mdoc(7) police: removed HISTORY info from the .Os call. 2001-07-10 15:31:11 +00:00
Ben Smithurst
d13241e146 Document the mpsafe argument to callout_init().
PR:		24529
Submitted by:	harti brandt <brandt@fokus.gmd.de>
Reviewed by:	jlemon
2001-01-31 12:17:45 +00:00
Ruslan Ermilov
3136363f3e Prepare for mdoc(7)NG. 2000-12-29 09:18:45 +00:00
Ruslan Ermilov
b5c508fba3 Use Fx macro wherever possible. 2000-11-14 11:20:58 +00:00
Mark Murray
58ea82758e Mention more functions in the headers so whatis(1) can find them, and
create links to functions so added found.
2000-08-16 19:53:38 +00:00
Bruce Evans
20c4d417bc Fixed some bugs (one serious one: timeouts were claimed to be executed at
spl0) and some bitrot (the not-so-new callout_init/stop/reset functions
were not mentioned; the callout_activate/deactivate/pending macros are
still not mentioned).

Submitted by:	mostly by jlemon
1999-12-27 16:22:20 +00:00
Peter Wemm
7f3dea244c $Id$ -> $FreeBSD$ 1999-08-28 00:22:10 +00:00
Bruce Evans
06dcc5a953 Fixed synopsis again. Too much was blown away by splatting a NetBSD-
based version over the top of the FreeBSD version in rev.1.6.
1998-01-16 18:45:52 +00:00
Justin T. Gibbs
c242996390 Updated timeout.9 man page describing the new callout interface. This
man page was based on the NetBSD version.
1997-09-21 22:12:19 +00:00
Bruce Evans
2e14815b84 Fixed #include and/or prototype bugs in synopsis. 1997-04-13 14:49:13 +00:00
Bruce Evans
21f8e39341 Fixed synopsis (wrong #includes and superfluous parentheses in typedef).
Nuked the confusing timeout_func_t typedef.  It will go away in <systm.h>
later.
1997-03-19 03:18:01 +00:00
Peter Wemm
e25aeca937 Revert $FreeBSD$ back to $Id$ 1997-02-22 13:26:29 +00:00
Jordan K. Hubbard
1130b656e5 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
Joerg Wunsch
4928e97cae Describe timeout() and untimeout(). 1996-04-13 16:59:07 +00:00