Initial commit of OpenSPARC T2 design and verification files.
[OpenSPARC-T2-DV] / tools / perl-5.8.0 / man / man3 / Tk::fileevent.3
CommitLineData
86530b38
AT
1.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
2.\"
3.\" Standard preamble:
4.\" ========================================================================
5.de Sh \" Subsection heading
6.br
7.if t .Sp
8.ne 5
9.PP
10\fB\\$1\fR
11.PP
12..
13.de Sp \" Vertical space (when we can't use .PP)
14.if t .sp .5v
15.if n .sp
16..
17.de Vb \" Begin verbatim text
18.ft CW
19.nf
20.ne \\$1
21..
22.de Ve \" End verbatim text
23.ft R
24.fi
25..
26.\" Set up some character translations and predefined strings. \*(-- will
27.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
28.\" double quote, and \*(R" will give a right double quote. | will give a
29.\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to
30.\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C'
31.\" expand to `' in nroff, nothing in troff, for use with C<>.
32.tr \(*W-|\(bv\*(Tr
33.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
34.ie n \{\
35. ds -- \(*W-
36. ds PI pi
37. if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
38. if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
39. ds L" ""
40. ds R" ""
41. ds C` ""
42. ds C' ""
43'br\}
44.el\{\
45. ds -- \|\(em\|
46. ds PI \(*p
47. ds L" ``
48. ds R" ''
49'br\}
50.\"
51.\" If the F register is turned on, we'll generate index entries on stderr for
52.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
53.\" entries marked with X<> in POD. Of course, you'll have to process the
54.\" output yourself in some meaningful fashion.
55.if \nF \{\
56. de IX
57. tm Index:\\$1\t\\n%\t"\\$2"
58..
59. nr % 0
60. rr F
61.\}
62.\"
63.\" For nroff, turn off justification. Always turn off hyphenation; it makes
64.\" way too many mistakes in technical documents.
65.hy 0
66.if n .na
67.\"
68.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
69.\" Fear. Run. Save yourself. No user-serviceable parts.
70. \" fudge factors for nroff and troff
71.if n \{\
72. ds #H 0
73. ds #V .8m
74. ds #F .3m
75. ds #[ \f1
76. ds #] \fP
77.\}
78.if t \{\
79. ds #H ((1u-(\\\\n(.fu%2u))*.13m)
80. ds #V .6m
81. ds #F 0
82. ds #[ \&
83. ds #] \&
84.\}
85. \" simple accents for nroff and troff
86.if n \{\
87. ds ' \&
88. ds ` \&
89. ds ^ \&
90. ds , \&
91. ds ~ ~
92. ds /
93.\}
94.if t \{\
95. ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
96. ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
97. ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
98. ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
99. ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
100. ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
101.\}
102. \" troff and (daisy-wheel) nroff accents
103.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
104.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
105.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
106.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
107.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
108.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
109.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
110.ds ae a\h'-(\w'a'u*4/10)'e
111.ds Ae A\h'-(\w'A'u*4/10)'E
112. \" corrections for vroff
113.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
114.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
115. \" for low resolution devices (crt and lpr)
116.if \n(.H>23 .if \n(.V>19 \
117\{\
118. ds : e
119. ds 8 ss
120. ds o a
121. ds d- d\h'-1'\(ga
122. ds D- D\h'-1'\(hy
123. ds th \o'bp'
124. ds Th \o'LP'
125. ds ae ae
126. ds Ae AE
127.\}
128.rm #[ #] #H #V #F C
129.\" ========================================================================
130.\"
131.IX Title "FILEEVENT 1"
132.TH FILEEVENT 1 "2000-12-30" "perl v5.8.0" "User Contributed Perl Documentation"
133.SH "NAME"
134Tk::fileevent \- Execute a callback when a filehandle becomes readable or writable
135.SH "SYNOPSIS"
136.IX Header "SYNOPSIS"
137\&\fI$widget\fR\->\fBfileevent\fR(\fIfileHandle\fR,\fBreadable\fR?,\fIcallback\fR?)
138.PP
139\&\fI$widget\fR\->\fBfileevent\fR(\fIfileHandle\fR,\fBwritable\fR?,\fIcallback\fR?)
140.SH "DESCRIPTION"
141.IX Header "DESCRIPTION"
142This command is used to create \fIfile event handlers\fR. A file event
143handler is a binding between a filehandle and a callback, such that the callback
144is evaluated whenever the filehandle becomes readable or writable. File event
145handlers are most commonly used to allow data to be received from another
146process on an event-driven basis, so that the receiver can continue to
147interact with the user while waiting for the data to arrive. If an
148application invokes \f(CW\*(C`<>\*(C'\fR, \f(CW\*(C`sysread\*(C'\fR or \f(CW\*(C`read\*(C'\fR on a blocking filehandle when
149there is no input data available, the process will block; until the input
150data arrives, it will not be able to service other events, so it will
151appear to the user to ``freeze up''. With \fBfileevent\fR, the process can
152tell when data is present and only invoke \fBgets\fR or \fBread\fR when
153they won't block.
154.PP
155The \fIfileHandle\fR argument to \fBfileevent\fR refers to an open filehandle,
156such as the return value from a previous \fBopen\fR or \fBsocket\fR
157command.
158If the \fIcallback\fR argument is specified, then \fBfileevent\fR
159creates a new event handler: \fIcallback\fR will be evaluated
160whenever the filehandle becomes readable or writable (depending on the
161argument to \fBfileevent\fR).
162In this case \fBfileevent\fR returns an empty string.
163The \fBreadable\fR and \fBwritable\fR event handlers for a file
164are independent, and may be created and deleted separately.
165However, there may be at most one \fBreadable\fR and one \fBwritable\fR
166handler for a file at a given time in a given interpreter.
167If \fBfileevent\fR is called when the specified handler already
168exists in the invoking interpreter, the new callback replaces the old one.
169.PP
170If the \fIcallback\fR argument is not specified, \fBfileevent\fR
171returns the current callback for \fIfileHandle\fR, or an empty string
172if there is none.
173If the \fIcallback\fR argument is specified as an empty string
174then the event handler is deleted, so that no callback will be invoked.
175A file event handler is also deleted automatically whenever
176its filehandle is closed or its interpreter is deleted.
177.PP
178A filehandle is considered to be readable if there is unread data
179available on the underlying device.
180A filehandle is also considered to be readable if an end of file or
181error condition is present on the underlying file or device.
182It is important for \fIcallback\fR to check for these conditions
183and handle them appropriately; for example, if there is no special
184check for end of file, an infinite loop may occur where \fIcallback\fR
185reads no data, returns, and is immediately invoked again.
186.PP
187A filehandle is considered to be writable if at least one byte of data
188can be written to the underlying file or device without blocking,
189or if an error condition is present on the underlying file or device.
190.PP
191Event-driven I/O works best for filehandles that have been
192placed into nonblocking mode.
193In blocking mode, a \f(CW\*(C`print\*(C'\fR command may block if you give it
194more data than the underlying file or device can accept, and a
195\&\f(CW\*(C`<>\*(C'\fR, \f(CW\*(C`sysread\*(C'\fR or \f(CW\*(C`read\*(C'\fR command will block if you attempt to read
196more data than is ready; no events will be processed while the
197commands block.
198In nonblocking mode \f(CW\*(C`print\*(C'\fR, \f(CW\*(C`<>\*(C'\fR, \f(CW\*(C`sysread\*(C'\fR and \f(CW\*(C`read\*(C'\fR never block.
199See the documentation for the individual commands for information
200on how they handle blocking and nonblocking filehandles.
201.PP
202The callback for a file event is executed in the context of \fI$widget\fR
203with which \fBfileevent\fR was invoked.
204If an error occurs while executing the callback then the
205Tk::Error mechanism is used to report the error.
206In addition, the file event handler is deleted if it ever returns
207an error; this is done in order to prevent infinite loops due to
208buggy handlers.
209.SH "BUGS"
210.IX Header "BUGS"
211On windows platforms \fBfileevent\fR is limited in the types of filehandles
212that behave correctly. Making filefhandles non-blocking is only implemented
213on a subset of \s-1UNIX\s0 platforms (see Tk::IO).
214.SH "CREDITS"
215.IX Header "CREDITS"
216\&\fBfileevent\fR is based on the \fBaddinput\fR command created
217by Mark Diekhans.
218.SH "SEE ALSO"
219.IX Header "SEE ALSO"
220Tk::IO
221Tk::callbacks
222.SH "KEYWORDS"
223.IX Header "KEYWORDS"
224asynchronous I/O, blocking, filehandle, event handler, nonblocking, readable,
225callback, writable.