Re: [gtk-list] Problems with multithreading.
- From: Xavier Bouchoux <bouchoux cs bris ac uk>
- To: gtk-list redhat com
- Subject: Re: [gtk-list] Problems with multithreading.
- Date: Thu, 26 Aug 1999 15:33:38 +0100
> I've changed that prog to use pthreads instead of whatever thread.hh might be
just a wrapper around calls to either pthreads or solarix threads. and
some very dumb error checking...
> and it works here on solaris and linux , even though the
> gdk_threads_enter/leave() pair in the main thread prevents the window to be
> displayed in the time the main thread is waiting, what you presumably
> intended. 
Yes. was just to make sure that no strange race condition occured.
>Other than that it does, what it should.
Damn. 
I tried with both solaris and posix threads. And it crashes all the
same.
I don't understand why!
> 
> #include <stdlib.h>
> #include <stdio.h>
> #include <pthread.h>
> 
> #include <gtk/gtk.h>
> 
> void *the_ui_thread(void *ptr)
> {
>   printf("hello\n");
> 
>   gdk_threads_enter();
>   printf("creating the window\n");
>   gtk_widget_show (gtk_window_new (GTK_WINDOW_TOPLEVEL));
>   printf("ok.\n");
>   gdk_threads_leave();
> }
> 
> int
> main (int argc, char **argv)
> {
>   pthread_t tid;
>   g_thread_init(NULL);
> 
>   /* initialise gtk */
>   //  gtk_set_locale ();
>   gtk_init (&argc, &argv);
> 
>   //  add_pixmap_directory (PACKAGE_DATA_DIR "/pixmaps");
>   //  add_pixmap_directory (PACKAGE_SOURCE_DIR "/pixmaps");
> 
>   gdk_threads_enter();
>   pthread_create(tid, NULL, the_ui_thread, NULL);
                  ^^^^^
you mean &tid, I guess.
> 
>   printf("zzzz...\n");
>   sleep(2);
>   printf("Now!\n");
> 
>   gtk_main ();
>   gdk_threads_leave();
> 
>   return 0;
> }
>
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]