Hi, GIOSchedulerJob uses GThreadPool to run it's jobs if thread system is supported, otherwise it use g_idle_add*(), using GThreadPool maybe the best choice for handling some blocking operations such as I/O related call. Here an example for using GSchedulerJob. As you can see the main loop was not blocked although job_func call a blocking g_usleep().
#include <glib.h> #include <gio/gio.h> static gboolean source_func(void *data) { g_print("im source\n"); return TRUE; } static gboolean job_func(GIOSchedulerJob *job, GCancellable *cancellable, void *data) { g_print ("im running\n"); g_usleep(G_USEC_PER_SEC); return TRUE; } int main(void) { GMainLoop *main_loop; g_thread_init(NULL); main_loop = g_main_loop_new(NULL, FALSE); g_io_scheduler_push_job(job_func, NULL, NULL, G_PRIORITY_DEFAULT, NULL); g_timeout_add(250, (GSourceFunc) source_func, NULL); g_main_loop_run(main_loop); return 0; } If GIOSchedulerJob documentation is not `clear', you can explore it's source at http://git.gnome.org/browse/glib/tree/gio/gioscheduler.c The best documentations for programming is the code it's self right? ;p Ardhan --- kuleshovm...@gmail.com wrote: From: Alexander Kuleshov <kuleshovm...@gmail.com> To: gtk-app-devel-list@gnome.org Subject: GIOScheduler example need Date: Thu, 24 Jun 2010 14:55:54 +0600 Hello, I need to use GIOScheduler in my C/gtk+ application. Where can find example of using GIOScheduler? Thank you. _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list _____________________________________________________________ Listen to KNAC, Hit the Home page and Tune In Live! ---> http://www.knac.com _______________________________________________ gtk-app-devel-list mailing list gtk-app-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list