On Thu, 2003-10-02 at 10:43, David Judkovics wrote: > > My project makes extensive use of what I believe are glibs non thread > related functions and types. The wording of the documentation > concerning glib thread safe operation has left me confused. > > The documentation states glib must be compiled with the macro > 'G_THREADS_ENABLED' defined for thread safe operation. > > ..."This macro is defined, if GLib was compiled with thread support. > This does not necessarily mean, that there is a thread implementation > available, but the infrastructure is in place and once you provide a > thread implementation to g_thread_init(), GLib will be multi-thread > safe. It isn't and cannot be, if G_THREADS_ENABLED is not defined."... Not that all that G_THREAD_ENABLED being defined means is that you didn't pass --disable-threads to GLib's configure. Thread support is the default. > Later on the documentation for 'g_thread_init()' states, > > ..."Before you use a thread related function in GLib, you should > initialize the thread system. This is done by calling g_thread_init(). > Most of the time you will only have to call g_thread_init(NULL)."... > > To me thread safe operation and the use of glib thread related > functions are two distinct configuration issues. The documentation > seems to mix them. > This is my confusion. How do you think GLib achieves thread-safe operation? It uses the glib thread related functions. > My project is a library that uses the 'g_slist_' calls extensively, > calls I believe that are not thread related. My project library must > be thread safe. The version of glib we are using does not have > 'G_THREADS_ENABLED' defined. Is my project library thread safe within > the context of its use of glib's 'g_slist_' calls? > Put another way, is glibs 'g_slist_' calls thread safe without > 'G_THREADS_ENABLED' defined? If you disabled thread support when compiling GLib, you cannot use it from a threaded application. Regards, Owen _______________________________________________ gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list