OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [tcl/] [doc/] [DoWhenIdle.3] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
'\"
2
'\" Copyright (c) 1990 The Regents of the University of California.
3
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
4
'\"
5
'\" See the file "license.terms" for information on usage and redistribution
6
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
7
'\"
8
'\" RCS: @(#) $Id: DoWhenIdle.3,v 1.1.1.1 2002-01-16 10:25:23 markom Exp $
9
'\"
10
.so man.macros
11
.TH Tcl_DoWhenIdle 3 7.5 Tcl "Tcl Library Procedures"
12
.BS
13
.SH NAME
14
Tcl_DoWhenIdle, Tcl_CancelIdleCall \- invoke a procedure when there are no pending events
15
.SH SYNOPSIS
16
.nf
17
\fB#include \fR
18
.sp
19
\fBTcl_DoWhenIdle\fR(\fIproc, clientData\fR)
20
.sp
21
\fBTcl_CancelIdleCall\fR(\fIproc, clientData\fR)
22
.SH ARGUMENTS
23
.AS Tcl_IdleProc clientData
24
.AP Tcl_IdleProc *proc in
25
Procedure to invoke.
26
.AP ClientData clientData in
27
Arbitrary one-word value to pass to \fIproc\fR.
28
.BE
29
 
30
.SH DESCRIPTION
31
.PP
32
\fBTcl_DoWhenIdle\fR arranges for \fIproc\fR to be invoked
33
when the application becomes idle.  The application is
34
considered to be idle when \fBTcl_DoOneEvent\fR has been
35
called, couldn't find any events to handle, and is about
36
to go to sleep waiting for an event to occur.  At this
37
point all pending \fBTcl_DoWhenIdle\fR handlers are
38
invoked.  For each call to \fBTcl_DoWhenIdle\fR there will
39
be a single call to \fIproc\fR;  after \fIproc\fR is
40
invoked the handler is automatically removed.
41
\fBTcl_DoWhenIdle\fR is only usable in programs that
42
use \fBTcl_DoOneEvent\fR to dispatch events.
43
.PP
44
\fIProc\fR should have arguments and result that match the
45
type \fBTcl_IdleProc\fR:
46
.CS
47
typedef void Tcl_IdleProc(ClientData \fIclientData\fR);
48
.CE
49
The \fIclientData\fR parameter to \fIproc\fR is a copy of the \fIclientData\fR
50
argument given to \fBTcl_DoWhenIdle\fR.  Typically, \fIclientData\fR
51
points to a data structure containing application-specific information about
52
what \fIproc\fR should do.
53
.PP
54
\fBTcl_CancelIdleCall\fR
55
may be used to cancel one or more previous
56
calls to \fBTcl_DoWhenIdle\fR:  if there is a \fBTcl_DoWhenIdle\fR
57
handler registered for \fIproc\fR and \fIclientData\fR, then it
58
is removed without invoking it.  If there is more than one
59
handler on the idle list that refers to \fIproc\fR and \fIclientData\fR,
60
all of the handlers are removed.  If no existing handlers match
61
\fIproc\fR and \fIclientData\fR then nothing happens.
62
.PP
63
\fBTcl_DoWhenIdle\fR is most useful in situations where
64
(a) a piece of work will have to be done but (b) it's
65
possible that something will happen in the near future
66
that will change what has to be done or require something
67
different to be done.  \fBTcl_DoWhenIdle\fR allows the
68
actual work to be deferred until all pending events have
69
been processed.  At this point the exact work to be done
70
will presumably be known and it can be done exactly once.
71
.PP
72
For example, \fBTcl_DoWhenIdle\fR might be used by an editor
73
to defer display updates until all pending commands have
74
been processed.  Without this feature, redundant redisplays
75
might occur in some situations, such as the processing of
76
a command file.
77
.SH BUGS
78
.PP
79
At present it is not safe for an idle callback to reschedule itself
80
continuously.  This will interact badly with certain features of Tk
81
that attempt to wait for all idle callbacks to complete.  If you would
82
like for an idle callback to reschedule itself continuously, it is
83
better to use a timer handler with a zero timeout period.
84
 
85
.SH KEYWORDS
86
callback, defer, idle callback

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.