Make this function thread-safe in the GLib style.

2004-10-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/gwin32.c (g_win32_get_windows_version): Make this
	function thread-safe in the GLib style.
	* glib/gthreadinit.h:
	* glib/gwin32.c (_g_win32_thread_init): New function to
	initialize the version.
	* glib/gthread.c (g_thread_init_glib): Call
	_g_win32_thread_init() from here.
This commit is contained in:
Matthias Clasen 2004-10-26 14:04:52 +00:00 committed by Matthias Clasen
parent d59b22a981
commit 9b66aa4222
8 changed files with 74 additions and 8 deletions

View File

@ -1,3 +1,13 @@
2004-10-26 Matthias Clasen <mclasen@redhat.com>
* glib/gwin32.c (g_win32_get_windows_version): Make this
function thread-safe in the GLib style.
* glib/gthreadinit.h:
* glib/gwin32.c (_g_win32_thread_init): New function to
initialize the version.
* glib/gthread.c (g_thread_init_glib): Call
_g_win32_thread_init() from here.
2004-10-26 Ray Strode <rstrode@redhat.com>
* glib/gkeyfile.c: Add Matthias to "Written by" lines

View File

@ -1,3 +1,13 @@
2004-10-26 Matthias Clasen <mclasen@redhat.com>
* glib/gwin32.c (g_win32_get_windows_version): Make this
function thread-safe in the GLib style.
* glib/gthreadinit.h:
* glib/gwin32.c (_g_win32_thread_init): New function to
initialize the version.
* glib/gthread.c (g_thread_init_glib): Call
_g_win32_thread_init() from here.
2004-10-26 Ray Strode <rstrode@redhat.com>
* glib/gkeyfile.c: Add Matthias to "Written by" lines

View File

@ -1,3 +1,13 @@
2004-10-26 Matthias Clasen <mclasen@redhat.com>
* glib/gwin32.c (g_win32_get_windows_version): Make this
function thread-safe in the GLib style.
* glib/gthreadinit.h:
* glib/gwin32.c (_g_win32_thread_init): New function to
initialize the version.
* glib/gthread.c (g_thread_init_glib): Call
_g_win32_thread_init() from here.
2004-10-26 Ray Strode <rstrode@redhat.com>
* glib/gkeyfile.c: Add Matthias to "Written by" lines

View File

@ -1,3 +1,13 @@
2004-10-26 Matthias Clasen <mclasen@redhat.com>
* glib/gwin32.c (g_win32_get_windows_version): Make this
function thread-safe in the GLib style.
* glib/gthreadinit.h:
* glib/gwin32.c (_g_win32_thread_init): New function to
initialize the version.
* glib/gthread.c (g_thread_init_glib): Call
_g_win32_thread_init() from here.
2004-10-26 Ray Strode <rstrode@redhat.com>
* glib/gkeyfile.c: Add Matthias to "Written by" lines

View File

@ -1,3 +1,13 @@
2004-10-26 Matthias Clasen <mclasen@redhat.com>
* glib/gwin32.c (g_win32_get_windows_version): Make this
function thread-safe in the GLib style.
* glib/gthreadinit.h:
* glib/gwin32.c (_g_win32_thread_init): New function to
initialize the version.
* glib/gthread.c (g_thread_init_glib): Call
_g_win32_thread_init() from here.
2004-10-26 Ray Strode <rstrode@redhat.com>
* glib/gkeyfile.c: Add Matthias to "Written by" lines

View File

@ -152,6 +152,7 @@ g_thread_init_glib (void)
_g_mem_thread_init ();
_g_messages_thread_init ();
_g_atomic_thread_init ();
_g_win32_thread_init ();
g_threads_got_initialized = TRUE;

View File

@ -33,6 +33,7 @@ void _g_convert_thread_init (void) G_GNUC_INTERNAL;
void _g_rand_thread_init (void) G_GNUC_INTERNAL;
void _g_main_thread_init (void) G_GNUC_INTERNAL;
void _g_atomic_thread_init (void) G_GNUC_INTERNAL;
void _g_win32_thread_init (void) G_GNUC_INTERNAL;
/* Are called from glib/gthread.c. Must only contain g_private_new calls */
void _g_mem_thread_private_init (void) G_GNUC_INTERNAL;

View File

@ -1278,19 +1278,33 @@ g_win32_get_package_installation_subdirectory (gchar *package,
return dirname;
}
guint
g_win32_get_windows_version (void)
static guint windows_version;
static void
g_win32_windows_version_init (void)
{
static gboolean beenhere = FALSE;
static guint version;
if (!beenhere)
{
if (getenv ("G_WIN32_PRETEND_WIN9X"))
version = 0x80000004;
else
version = GetVersion ();
beenhere = TRUE;
if (getenv ("G_WIN32_PRETEND_WIN9X"))
windows_version = 0x80000004;
else
windows_version = GetVersion ();
}
return version;
}
void
_g_win32_thread_init (void)
{
g_win32_windows_version_init ();
}
guint
g_win32_get_windows_version (void)
{
g_win32_windows_version_init ();
return windows_version;
}