/usr/lib/perl5/Glib/MainLoop.pod is in libglib-perl 3:1.260-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 | =head1 NAME
Glib::MainLoop - An event source manager
=cut
=for position DESCRIPTION
=head1 DESCRIPTION
Event-driven programs need some sort of loop which watches for events and
launches the appropriate actions. Glib::MainLoop provides this functionality.
Mainloops have context, provided by the MainContext object. For the most part
you can use the default context (see C<default>), but if you want to create a
subcontext for a nested loop which doesn't have the same event sources, etc,
you can.
Event sources, attached to main contexts, watch for events to happen, and
launch appropriate actions. Glib provides a few ready-made event sources,
the Glib::Timeout, Glib::Idle, and io watch (C<< Glib::IO->add_watch >>).
Under the hood, Gtk+ adds event sources for GdkEvents to dispatch events to
your widgets. In fact, Gtk2 provides an abstraction of Glib::MainLoop (See
C<< Gtk2->main >> and friends), so you may rarely have cause to use
Glib::MainLoop directly.
Note: As of version 1.080, the Glib module uses a custom event source to
ensure that perl's safe signal handling and the glib polling event loop
play nicely together. It is no longer necessary to install a timeout to
ensure that async signals get handled in a timely manner.
=head1 CONSTANTS
C<SOURCE_REMOVE> and C<SOURCE_CONTINUE> are designed for use as the
return values from timeout, idle and I/O watch source functions. They
return true to keep running or false to remove themselves. These
constants can help you get that the right way around.
Glib::SOURCE_CONTINUE # true
Glib::SOURCE_REMOVE # false
=cut
=for object Glib::MainLoop
=cut
=for object Glib::MainLoop An event source manager
=cut
=for object Glib::MainLoop
=cut
=for object Glib::MainLoop
=cut
=for object Glib::MainLoop
=cut
=for object Glib::MainLoop
=cut
=for object Glib::MainLoop
=cut
=head1 METHODS
=head2 maincontext thingamabob = Glib::MainContext-E<gt>B<new>
=head2 mainloop = Glib::MainLoop-E<gt>B<new> ($context=undef, $is_running=FALSE)
=over
=item * $context (Glib::MainContext thingamabob)
=item * $is_running (boolean)
=back
=head2 integer = Glib::Timeout-E<gt>B<add> ($interval, $callback, $data=undef, $priority=G_PRIORITY_DEFAULT)
=over
=item * $interval (integer) number of milliseconds
=item * $callback (subroutine)
=item * $data (scalar)
=item * $priority (integer)
=back
Run I<$callback> every I<$interval> milliseconds until I<$callback> returns
false. Returns a source id which may be used with C<< Glib::Source->remove >>.
Note that a mainloop must be active for the timeout to execute.
=head2 integer = Glib::Idle-E<gt>B<add> ($callback, $data=undef, $priority=G_PRIORITY_DEFAULT_IDLE)
=over
=item * $callback (subroutine)
=item * $data (scalar)
=item * $priority (integer)
=back
Run I<$callback> when the mainloop is idle. If I<$callback> returns false,
it will uninstall itself, otherwise, it will run again at the next idle
iteration. Returns a source id which may be used with
C<< Glib::Source->remove >>.
=head2 integer = Glib::Timeout-E<gt>B<add_seconds> ($interval, $callback, $data=undef, $priority=G_PRIORITY_DEFAULT)
=over
=item * $interval (integer)
=item * $callback (scalar)
=item * $data (scalar)
=item * $priority (integer)
=back
Since: glib 2.14
=head2 integer = Glib::IO-E<gt>B<add_watch> ($fd, $condition, $callback, $data=undef, $priority=G_PRIORITY_DEFAULT)
=over
=item * $fd (integer) file descriptor, e.g. fileno($filehandle)
=item * $condition (Glib::IOCondition)
=item * $callback (subroutine)
=item * $data (scalar)
=item * $priority (integer)
=back
Run I<$callback> when there is an event on I<$fd> that matches I<$condition>.
The watch uninstalls itself if I<$callback> returns false.
Returns a source id that may be used with C<< Glib::Source->remove >>.
Glib's IO channels serve the same basic purpose as Perl's file handles, so
for the most part you don't see GIOChannels in Perl. The IO watch integrates
IO operations with the main loop, which Perl file handles don't do. For
various reasons, this function requires raw file descriptors, not full
file handles. See C<fileno> in L<perlfunc>.
=head2 maincontext thingamabob = $loop-E<gt>B<get_context>
=head2 maincontext thingamabob = Glib::MainContext-E<gt>B<default>
=head2 boolean = $context-E<gt>B<is_owner>
Since: glib 2.12
=head2 boolean = $loop-E<gt>B<is_running>
=head2 boolean = $context-E<gt>B<iteration> ($may_block)
=over
=item * $may_block (boolean)
=back
=head2 integer = Glib::main_depth
Find the current main loop recursion level. This is handy in fringe
situations, but those are very rare; see the C API reference for a more
in-depth discussion.
Since: glib 2.4
=head2 boolean = $context-E<gt>B<pending>
=head2 $loop-E<gt>B<quit>
=head2 boolean = Glib::Source-E<gt>B<remove> ($tag)
=over
=item * $tag (integer)
=back
Remove an event source. I<$tag> is the number returned by things like
C<< Glib::Timeout->add >>, C<< Glib::Idle->add >>, and
C<< Glib::IO->add_watch >>.
=head2 $loop-E<gt>B<run>
=head2 integer = Glib::Child-E<gt>B<watch_add> ($pid, $callback, $data=undef, $priority=G_PRIORITY_DEFAULT)
=over
=item * $pid (integer) child process ID
=item * $callback (subroutine)
=item * $data (scalar)
=item * $priority (integer)
=back
Add a source to the default main context which will call
&$callback ($pid, $waitstatus, $data)
when child process $pid terminates. The return value is a source id
which can be used with C<< Glib::Source->remove >>. When the callback
is made the source is removed automatically.
In a non-threaded program Glib implements this source by installing a
SIGCHLD handler. Don't change $SIG{CHLD} in Perl or the callback will
never run.
Since: glib 2.4
=cut
=head1 ENUMS AND FLAGS
=head2 flags Glib::IOCondition
=over
=item * 'in' / 'G_IO_IN'
=item * 'out' / 'G_IO_OUT'
=item * 'pri' / 'G_IO_PRI'
=item * 'err' / 'G_IO_ERR'
=item * 'hup' / 'G_IO_HUP'
=item * 'nval' / 'G_IO_NVAL'
=back
=cut
=head1 SEE ALSO
L<Glib>
=cut
=head1 COPYRIGHT
Copyright (C) 2003-2011 by the gtk2-perl team.
This software is licensed under the LGPL. See L<Glib> for a full notice.
=cut
|