Re: execution of timers from other callbacks
- From: zentara <zentara1 sbcglobal net>
- To: gtk-perl-list gnome org
- Subject: Re: execution of timers from other callbacks
- Date: Wed, 17 Dec 2008 15:57:34 -0500
On Wed, 17 Dec 2008 15:41:58 -0500
muppet <scott asofyet org> wrote:
Here's the call flow:
gtk_main()
g_main_loop_run()
g_main_context_dispatch()
timeout callback
timeout add
spin in a loop
Since you didn't return from the timeout callback, the main loop
didn't run, and therefore your timeout doesn't fire. You must
a) return from the callback, which implies
i. break your work into chunks and handle each chunk in an idle
callback
ii. fork a subprocess to do the work, with pipes for
communication and all that
b) use a new main loop, as in your non_blocking_delay() function,
which implies that you are simply waiting for something
c) eat events manually, which implies you're doing real work, and if
it's going to take a while, you don't want to do it this way
Thanks for the good answer.
I've seen this behavior myself in scripts, and always just
hacked around it, as in your options.
But now I know why, thanks.
zentara
--
I'm not really a human, but I play one on earth.
http://zentara.net/Remember_How_Lucky_You_Are.html
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]