Glib::MainLoop - An event source manager


NAME

Glib::MainLoop - An event source manager


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 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 (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 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.


METHODS

maincontext thingamabob = Glib::MainContext->new

mainloop = Glib::MainLoop->new ($context=undef, $is_running=FALSE)

integer = Glib::Timeout->add ($interval, $callback, $data=undef, $priority=G_PRIORITY_DEFAULT)

integer = Glib::Idle->add ($callback, $data=undef, $priority=G_PRIORITY_DEFAULT_IDLE)

integer = Glib::IO->add_watch ($fd, $condition, $callback, $data=undef, $priority=G_PRIORITY_DEFAULT)

maincontext thingamabob = $loop->get_context

maincontext thingamabob = Glib::MainContext->default

boolean = $loop->is_running

boolean = $context->iteration ($may_block)

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

boolean = $context->pending

$loop->quit

boolean = Glib::Source->remove ($tag)

$loop->run


ENUMS AND FLAGS

flags Glib::IOCondition


SEE ALSO

the Glib manpage


COPYRIGHT

Copyright (C) 2003-2007 by the gtk2-perl team.

This software is licensed under the LGPL. See the Glib manpage for a full notice.

 Glib::MainLoop - An event source manager