On Wed, Jan 5, 2011 at 5:48 AM, Jaroslav Šmíd <jardas...@gmail.com> wrote: > Well, I cannot find anything in glib. If you use linux, you can use > timerfd_create() to create pollable timer, create new GSource, attach the > descriptor and you got your timer. Set intervals to zero to stop it, > descriptor will get no more read events, and you don't even need to detach > the source from event loop. You can 'reset' the timer without stopping it > first. >
In fact, I just had to write something similar the other day - have a look at http://git.compiz.org/~dbo/compiz-with-glib-mainloop/tree/src/timer.cpp?h=glibmm-experimental#n30 (albeit it is glibmm, but you should be able to get the idea and translate it to regular glib, this is essentially what I did in reverse) > On 12/25/2010 12:48 AM, Juan Pablo L. wrote: >> >> Hi, i m making an application which needs to perform a small task evey X >> secs, it will disconnect from a server if X seconds have passed without the >> aplication sending anything to the server, but if before completing the X >> secs i send something to the server i have to reset the timer for another X >> secs and so on like that all the time .... but my problem is that i can not >> find a way of resetting the timer without destroying and recreating the time >> again and again and again ..... which i find it too much for just the small >> task of resetting the timer, in other words i do not want to be freeing and >> getting new memory all the time i find that to be very inefficient and there >> should not be any need for it, so is there anyway to reset the timer without >> releasing its memory and getting memory all the time ? i know that if the >> callback function returns FALSE the source will not be added in the loop >> again so i guess i can just attach it again but that will only work when the >> timer > > ex >> >> pires so that will not help when the timer has not yet expired and i need >> to reset it for another X secs. So should know that i m attaching the timer >> to a non default main loop (it is a main loop inside a thread). any ideas >> will be very helpful. thanks!!! >> >> _______________________________________________ >> gtk-app-devel-list mailing list >> gtk-app-devel-list@gnome.org >> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list > > _______________________________________________ > gtk-app-devel-list mailing list > gtk-app-devel-list@gnome.org > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list > -- Sam Spilsbury _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list