Re: Forcing a G Timeout to be handled by a specific thread
- From: "Ardhan Madras" <ajhwb knac com>
- To: "Andrew Wood" <a j w me com>
- Cc: gtk-app-devel-list gnome org
- Subject: Re: Forcing a G Timeout to be handled by a specific thread
- Date: Tue, 11 Oct 2011 02:29:04 -0700
Hi Andrew,
I wrote some Glib programming example in the past, this code is about
creating GMainContext, GMainLoop and GSources (that g_timeout_add() function
and friends did) into separate thread, hope this will be usefull for you.
#include <glib.h>
typedef struct
{
GMainLoop *loop;
guint n_run;
} LoopInfo;
gboolean callback (LoopInfo *info)
{
info->n_run -= 1;
g_print ("loop %p n_run: %u\n", info->loop, info->n_run);
if (info->n_run <= 0)
{
g_main_loop_quit (info->loop);
g_print ("loop %p quit\n", info->loop);
return FALSE;
}
return TRUE;
}
gpointer *thread1 (gpointer *data)
{
GMainLoop *loop = g_main_loop_new (NULL, FALSE);
GSource *source = g_timeout_source_new (2250);
LoopInfo info = { .loop = loop, .n_run = 3 };
g_source_set_callback (source, (GSourceFunc) callback, &info, NULL);
g_source_attach (source, NULL);
g_print ("loop %p run\n", loop);
g_main_loop_run (loop);
return NULL;
}
gint main(void)
{
g_thread_init (NULL);
GThread *thread = g_thread_create ((GThreadFunc) thread1, NULL, TRUE, NULL);
GMainContext *ctx = g_main_context_new ();
GMainLoop *loop = g_main_loop_new (ctx, FALSE);
GSource *source = g_timeout_source_new_seconds (1);
LoopInfo info = { .loop = loop, .n_run = 5 };
g_source_set_callback (source, (GSourceFunc) callback, &info, NULL);
g_source_attach (source, ctx);
g_print ("loop %p run\n", loop);
g_main_loop_run (loop);
g_thread_join (thread);
return 0;
}
--- a j w me com wrote:
From: Andrew Wood <a j w me com>
To: gtk-app-devel-list <gtk-app-devel-list gnome org>
Subject: Forcing a G Timeout to be handled by a specific thread
Date: Wed, 05 Oct 2011 14:00:40 +0100
Is there a way to ensure a timeout callback set with g_timeout_add is
always executed by a specific pthread?
Thanks
Andrew
_______________________________________________
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]