Re: Signals in threads
- From: Dave Foster <daf minuslab net>
- To: bob fis-cal com
- Cc: gtkmm-list gnome org
- Subject: Re: Signals in threads
- Date: Thu, 22 Jun 2006 09:21:06 -0400
Hmm, I know I replied to this last night, perhaps I forgot to do reply
all. Bob basically said what I did as well, however...
Bob Caryl wrote:
In my case, I had also declared in my GUI class a
std::vector<Glib::ustring> object to which my worker thread pushed
back string data that I wanted to add to a Gtk::TextBuffer displayed
in a Gtk::TextView in my GUI class. My callback slot would pop the
Glib::ustrings off this vector one at a time and add them to the
Gtk::TextBuffer whenever it was called by the dispatcher. Therefore,
my worker thread would push back strings to this vector object just
prior to calling the dispatcher.
Your std::vector method does not sound very thread-safe.. there can be
interleaving issues if your worker thread were to push a string on as
your consumer thread were to pop strings off. Two solutions to this:
use a mutex around accesses to your vector (gtkmm has a nice
auto-destructing one), or use something which is already thread-safe
like g_async_queue (or w/e that name is, i can't seem to remember it).
Sorry for forgetting to cc the list earlier, Mike.
dave
--
Dave Foster <daf minuslab net>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]