Re: Delay time to spawn new threads?



Hi Michael,

My 32-bit, GTK+2 version does

  // Secure glib
  if (!g_thread_supported ()) {
    g_thread_init (NULL);
  }

at the beginning, and then the thread is spawned via:

on_button1_clicked (GtkButton *button1, MyData *data)
{
  GThread *thread;
  GError *error = NULL;

  thread = g_thread_create ((GThreadFunc) my_function, data, FALSE, &error);
    if (! thread) {
      g_print ("Error: Unable to create new thread for my_function() in on_button1_clicked().%s\n", 
error->message);
      exit (EXIT_FAILURE);
    }

My 64-bit, GTK+3 versions does not do the g_thread_init() call.

It spawns a new thread via:

int
on_button1_clicked (GtkButton *button1, MyData *data)
{
  GThread *thread;

  thread = g_thread_new ("my_function", (GThreadFunc) my_function, data);
    if (! thread) {
      fprintf (stderr, "Error: Unable to create new thread for my_function() in on_button1_clicked().\n");
      exit (EXIT_FAILURE);
    }

These threads do nothing with the GUI.

Dave






________________________________
 From: Michael Torrie <torriem gmail com>
To: gtk-app-devel-list gnome org 
Sent: Wednesday, November 27, 2013 2:16 PM
Subject: Re: Delay time to spawn new threads?
 

On 11/27/2013 08:29 AM, David Buchan wrote:
I have written a program which spawns a new thread when the user
clicks a button. The new thread does something noticeable immediately
after starting, so I know when the thread has begun. What I mean is,
if I run that piece of code that is executed as a new thread, but as
a stand-alone program, it does it's thing immediately.

However, when I have it run as a new thread when the user clicks a
button, it takes about 1.5 seconds before it does its thing.


I've done this with g_thread_create() and g_thread_new() with
identical results. Is it normal for there to be a 1.5 sec delay, or
have I bumbled something?

Did you initialize the thread subsystem before using threads?  Did you
use the proper semiphores around GUI calls, or better yet use g_idle_add
to schedule GUI updates in the main thread?

http://www.gtk.org/api/2.6/gdk/gdk-Threads.html
http://blog.borovsak.si/2009/06/multi-threaded-gtk-applications.html
etc

_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org
https://mail.gnome.org/mailman/listinfo/gtk-app-devel-list


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]