Re: Use of threads with gtkmm.
- From: Paul Davis <paul linuxaudiosystems com>
- To: Rich Midwinter <rich midwinter gmail com>
- Cc: gtkmm-list gnome org
- Subject: Re: Use of threads with gtkmm.
- Date: Mon, 11 Apr 2005 14:17:55 -0400
>This excerpt from the FAQ sounds like what I'm after:
>"or alternatively, ensure that only a single thread makes such calls.
>One common way to do this is to have non-GUI threads send requests to
>the GUI thread via a pipe. The pipe is hooked into the main glib event
>loop used by GTK."
>
>But I've been unable to find any simple example code for this. Could anyone
>provide a brief example?
there is no brief example. there's no "brief" way to do it. i would
point at Ardour's ViewCVS system, but the code there is complicated by
the fact that the code used has to be real-time safe, which will make
it much harder for you to understand how it works.
you need to investigate glib/glibmm functions related to IOChannels,
in particular Glib::IOChannel::create_from_fd().
you first call pipe (2) to create a uni-directional pipe, then the
readable end of the pipe and feed it to the above named
function. attach a callback to the newly-created IOChannel that
responds to the pipe/IOChannel being readable.
from other threads, write requests to the writable end of the pipe.
voila.
the nature of a "request" is application dependent. i have a struct a
dozen or so members that get passed back and forth, although because
of the RT issue mentioned, its not quite as simple as that.
--p
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]