From 2c73140cc107ee53658e922776d037db3d4d13f1 Mon Sep 17 00:00:00 2001 From: Tor Lillqvist Date: Fri, 15 Aug 2008 13:15:22 +0000 Subject: [PATCH] Add an exception: g_mem_set_vtable() may be called before g_thread_init(). 2008-08-15 Tor Lillqvist * glib/tmpl/threads.sgml: Add an exception: g_mem_set_vtable() may be called before g_thread_init(). svn path=/trunk/; revision=7361 --- docs/reference/ChangeLog | 5 +++++ docs/reference/glib/tmpl/threads.sgml | 17 +++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/docs/reference/ChangeLog b/docs/reference/ChangeLog index e55af00..24d8fda 100644 --- a/docs/reference/ChangeLog +++ b/docs/reference/ChangeLog @@ -1,5 +1,10 @@ 2008-08-15 Tor Lillqvist + * glib/tmpl/threads.sgml: Add an exception: g_mem_set_vtable() may + be called before g_thread_init(). + +2008-08-15 Tor Lillqvist + * glib/tmpl/threads.sgml: Warn about the consequences of not calling g_thread_init() first, if it will be called at all. Advice calling it if using random GLib-based libraries. diff --git a/docs/reference/glib/tmpl/threads.sgml b/docs/reference/glib/tmpl/threads.sgml index 99523eb..25b59ba 100644 --- a/docs/reference/glib/tmpl/threads.sgml +++ b/docs/reference/glib/tmpl/threads.sgml @@ -34,14 +34,15 @@ primitives to portably create and manage threads (#GThread). You must call g_thread_init() before executing any other GLib -functions in a GLib program if g_thread_init() will be called at -all. This is a requirement even if no threads are in fact ever created -by the process. It is enough that g_thread_init() is called. If other -GLib functions have been called before that, the behaviour of the -program is undefined. - -Failing this requirement leads easily to hangs or crashes, apparently -more easily on Windows than on Linux, for example. +functions (except g_mem_set_vtable()) in a GLib program if +g_thread_init() will be called at all. This is a requirement even if +no threads are in fact ever created by the process. It is enough that +g_thread_init() is called. If other GLib functions have been called +before that, the behaviour of the program is undefined. An exception +is g_mem_set_vtable() which may be called before g_thread_init(). + +Failing this requirement can lead to hangs or crashes, apparently more +easily on Windows than on Linux, for example. Please note that if you call functions in some GLib-using library, in particular those above the GTK+ stack, that library might well call -- 2.7.4