Re: Threads and waits



Fernando Apesteguía wrote:
Hi,

I have an app. that runs two threads, the main one and other thread that
collects information from files. I launch the thread by calling
pthread_create and here comes my first question

¿Should I use g_thread_create instead? Now I have no problems with these
pthreads and I can perform mutual exclusion with gdk_threads_enter() and
gdk_threads_leave() so I'm not sure about change the kind of thread.

Under some conditions I would like the collector thread to make a pause. I
don't know how to do it with POSIX functions. I've seen Glib's API
documentation and I'm not sure how could I make this. ¿Should I use a Gcond?
As I can see in documentation, g_thread_yield is not recommended to be used.

Yes, use a GCond.

g_thread is implemented as pthreads on linux... so as far as that
goes; you're safe for now.

I strongly recommend that you call only g_thread_* functions and not
pthread:
    - This is what makes is portable after all
    - gdk_threads_init() *must* be called for threads to work properly,
      I believe gdk_threads_enter/leave is just a no-op otherwise.
    - Mixing two api's to achieve the same goal is hazerdous; who ever
      said that GDK garauntees to always use pthread on linux ???

Cheers,
                      -Tristan



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