Module Name: src Committed By: ad Date: Mon May 4 11:44:28 UTC 2009
Modified Files: src/share/man/man9: callout.9 Log Message: Add a CONCURRENCY section with some food for thought. To generate a diff of this commit: cvs rdiff -u -r1.22 -r1.23 src/share/man/man9/callout.9 Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/share/man/man9/callout.9 diff -u src/share/man/man9/callout.9:1.22 src/share/man/man9/callout.9:1.23 --- src/share/man/man9/callout.9:1.22 Mon May 4 11:28:20 2009 +++ src/share/man/man9/callout.9 Mon May 4 11:44:28 2009 @@ -1,4 +1,4 @@ -.\" $NetBSD: callout.9,v 1.22 2009/05/04 11:28:20 ad Exp $ +.\" $NetBSD: callout.9,v 1.23 2009/05/04 11:44:28 ad Exp $ .\" .\" Copyright (c) 2000, 2003, 2009 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -92,7 +92,7 @@ .Fn timeout and .Fn untimeout . -.Pp +.Sh FUNCTIONS The .Fn callout_init function initializes the callout handle @@ -282,6 +282,20 @@ This is used in situations where it is necessary to protect against the race condition described under .Fn callout_invoking . +.Sh CONCURRENCY +The callout facility performs locking internally in order to guarantee the +atomicity of individual operations performed on callouts. +It does not provide life cycle management of user-provided callout data +structures, nor does it ensure that groups of operations (multiple function +calls) are performed atomically. +These aspects of callout management are the responsibility of the user of +the callout facility. +.Pp +Scheduled callouts may be active concurrently in a context different to the +user of the callout facility: on another CPU, or at a different interrupt +priority level or thread on the current CPU. +The callout facility provides only one guarantee in this regard: any given +callout will never have multiple concurrent invocations. .Sh SEE ALSO .Xr hz 9 .Sh HISTORY