2008-02-11  Matthias Clasen <mclasen@redhat.com>

	* === Released 2.15.5 ===

2008-01-28  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.15.4 ===

2008-01-27  Matthias Clasen  <mclasen@redhat.com>

	* gthread-posix.c:
	* gthread-win32.c: Replace uses of G_GNUC_PRETTY_FUNCTION
	by __FUNCTION__.

2008-01-21  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.15.3 ===

2008-01-14  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.15.2 ===

008-01-07  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.15.1 ===

2007-12-20  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.15.0 ===

2007-11-07  Matthias Clasen <mclasen@redhat.com>

	* === Released 2.14.3 ===

2007-10-16  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.14.2 ===

2007-09-19  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.14.1 ===

2007-08-03  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.14.0 ===

2007-07-12  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.13.7 ===

Fri Jun 29 2007  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.13.6 ===

2007-06-18  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.13.5 ===

2007-06-05  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.13.4 ===

2007-06-04  Matthias Clasen  <mclasen@redhat.com>
	
	* === Released 2.13.3 ===

2007-05-22  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.13.2 ===

2007-05-03  Matthias Clasen <mclasen@redhat.com>

	* === Released 2.13.1 ===

2007-03-16  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.13.0 ===

2007-01-19  Tor Lillqvist  <tml@novell.com>

	* Makefile.am (gthread-2.0.lib): Use $(srcdir) for builds outside
	srcdir.

2007-01-16  Tor Lillqvist  <tml@novell.com>

	* gthread-win32.c (g_gettime_win32_impl):
	GetSystemTimeAsFileTime() returns 100s of nanoseconds since 1601,
	so offset to Unix epoch (1970) and multiply by 100 to get
	nanoseconds which is what we want.

2006-12-28  Tor Lillqvist  <tml@novell.com>

	* gthread-win32.c (g_thread_impl_init): Correct link to discussion
	about CRITICAL_SECTIONs vs. mutexes. Thanks to Felix Kater for
	pointing this out.

2006-08-15  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.12.2 ===

2006-07-22  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.12.1 ===

2006-07-02  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.12.0 ===

2006-06-20  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.11.4 ===

2006-06-12  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.11.3 ===

2006-06-05  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.11.2 ===

2006-05-15  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.11.1 ===

2006-05-03  Tor Lillqvist  <tml@novell.com>

	* gthread-win32.c (g_thread_exit_win32_impl): Free with free() and
	not g_free() what has been allocated with calloc(). (#340530, Jake
	Goulding)

2006-05-02  Matthias Clasen  <mclasen@redhat.com>
	
	* === Released 2.11.0 ===

2006-03-11  Tor Lillqvist  <tml@novell.com>

	* gthread-win32.c: #define _WIN32_WINDOWS as 0x0401 to get
	declaration for IsDebuggerPresent() when using MSVC6. (#333879,
	Kazuki Iwamoto)

2006-03-07  Matthias Clasen  <mclasen@redhat.com>

	* ===  Released 2.10.1 ===

2006-03-02  Tor Lillqvist  <tml@novell.com>

	* gthread-win32.c (G_PRIVATE_MAX): Increase to 100. 16 was rather
	low.
	(g_private_new_win32_impl): Can't use g_error() here as
	g_private_new() is called a few times by GLib internally before
	the messaging system that g_error() requires is ready. Thanks to
	Tim Janik for noticing. Just display a MessageBox() and abort()
	instead.

2006-02-24  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.10.0 ===

2006-02-20  Tor Lillqvist  <tml@novell.com>

	* gthread-win32.c (g_thread_exit_win32_impl): Make the
	implementation of GPrivate behave more closely as in POSIX
	threads: The value associacted with a GPrivate must be set to NULL
	before calling the destructor. (The destructor gets the original
	value as argument.)  A destructor might re-associate a non-NULL
	value with some GPrivate. To deal with this, if after all
	destructors have been called, there still are some non-NULL
	values, the process is repeated. (#331367)

2006-02-10  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.9.6 ===

2006-01-27  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.9.5 ===

2006-01-18  Matthias Clasen  <mclasen@redhat.com>
	
	* === Released 2.9.4 ===

2006-01-16  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.9.3 ===

2006-01-05  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.9.2 ===

2005-12-09  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.9.1 ===

2005-12-02  Matthias Clasen  <mclasen@redhat.com>

	* Makefile.am: Remove gthread-solaris.c

2005-11-17  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.9.0 ===

2005-08-23  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.8.1 ===

2005-08-12  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.8.0 ===

2005-08-05  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.7.7 ===

2005-08-03  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.7.6 ===

2005-08-02  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.7.5 ===

2005-07-21  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.7.4 ===

2005-07-15  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.7.3 ===
	
2005-07-09  Tor Lillqvist  <tml@novell.com>

	* Makefile.am: Don't use the scripts in build/win32 to compile
	gthread.rc into a resource object file. (This means we lose the
	build number increment magic, but I doubt it was that useful
	anyway.) Instead use windres directly. To pass the normal .o file
	produced by windres through libtool, which wants .lo files, pass
	it directly to the linker using a -Wl option.

	* gthread.rc.in: Thus replace BUILDNUMBER with 0.

2005-07-08  Matthias Clasen  <mclasen@redhat.com>
	
	* === Released 2.7.2 ===

2005-06-30  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.7.1 ===

2005-06-26  Tor Lillqvist  <tml@novell.com>

	* Makefile.am: libtool installs/uninstalls the import library, no
	need to do it ourselves. Do still install/uninstall the .def file,
	though.

2005-06-10  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.7.0 ===

2005-06-09  Matthias Clasen  <mclasen@redhat.com>

	* gthread-posix.c (g_thread_create_posix_impl): Allow
	setstacksize to fail.  (#304790, Michael Banck)

2005-01-07  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.6.1 ===

2004-12-16  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.6.0 ===
	
2004-12-02  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.5.7 ===
	
2004-11-12  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.5.6 ===
	
2004-11-02  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.5.5 ===

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

	* === Released 2.5.4 ===

2004-09-18 Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.5.3 ===

2004-08-25 Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.5.2 ===

2004-08-01 Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.5.1 ===

Sun Jul 18 18:03:08 2004  Soeren Sandmann  <sandmann@daimi.au.dk>

	* === Released 2.5.0 ===

2002-11-23  Tor Lillqvist  <tml@iki.fi>

	* gthread-win32.c (g_cond_timed_wait_win32_impl): Fix two bugs: 1)
	If abs_time is NULL, should use infinite time. 2) Check for
	current time already being past abs_time. (#99294, Christopher
	R. Palmer, fix by Sebastian Wilhelmi)

Mon Nov  4 14:45:24 2002  Owen Taylor  <otaylor@redhat.com>

	* gthread-posix.c gthread-solaris.c: Include <config.h>

2002-03-10  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c (g_thread_create_posix_impl): Do a comparison,
	not an assignment, stupid! Spotted by Daniel Elstner
	<daniel.elstner@gmx.net>.

2002-02-09  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-impl.c: Only compile most of this file, if
	G_THREADS_ENABLED is set.

	* Fixed typo in G_THREADS_ENABLED. 

2002-01-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-solaris.c: Use g_free instead of free. Pointed out by
	Sam O'Connor <sam@panviva.com>.

2001-10-23  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am: (Win32): If we have built the MSVC import library,
	install it. Install the gcc import library. Also support
	uninstall.

2001-09-28  Tor Lillqvist  <tml@iki.fi>

	* gthread-win32.c: Use an extra level of indirection for GMutex.
	It is now a pointer either to a pointer to a CRITICAL_SECTION
	struct, or to a mutex HANDLE. This is needed in case the user
	defines G_ERRORCHECK_MUTEXES. G_MUTEX_SIZE must correctly reflect
	the size of *GMutex, but this used to vary depending on whether we
	at run-time chose to use CRITICAL_SECTIONs or mutexes.
	(g_mutex_free_win32_cs_impl, g_cond_free_win32_impl): Call
	DeleteCriticalSection() when done with it.

	* gthread-impl.c (g_thread_init_with_errorcheck_mutexes): Call
	g_thread_impl_init() before accessing
	g_thread_functions_for_glib_use_default, as the
	g_thread_impl_init() function might modify it.
	
2001-09-26  Tor Lillqvist  <tml@iki.fi>

	* makefile.mingw.in: Fix couple of typos.

	* gthread.def: Add g_thread_init_with_errorcheck_mutexes.

2001-09-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-impl.c: Corrected the array size (cough, cough). Pointed
	out by gpablo@intersystems.com.ar. Fixes #61065.

2001-09-25  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am: Use new macros for .def file, and check for
	MS_LIB_AVAILABLE, new rule to build MS import library.

	* makefile.msc.in: Use same DLL and import library names as
	libtool.
	
2001-09-19  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c: Add g_thread_equal_posix_impl and add to the
	function vector g_thread_functions_for_glib_use_default.
	
	* gthread-solaris.c, gthread-win32.c: Add NULL as equal function,
	as on those two platforms you don't need an equal function.

2001-09-19  Tor Lillqvist  <tml@iki.fi>

	* gthread.rc.in: Correct InternalName and OriginalFilename to
	match what we actually produce.

2001-07-20  Hans Breuer  <hans@breuer.org>

	* makefile.msc.in : reflect glib move

2001-06-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-win32.c: Use g_win32_error_message to beautify error
	messages.

2001-05-24  Hans Breuer  <hans@breuer.org>

	* makefile.msc.in : pthread isn't required anymore

2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-win32.c (g_cond_wait_internal): Also return TRUE for
	late arrived signals. Thanks to Steven Brooks
	<umbrook0@cs.umanitoba.ca> for pointing out.

	* gthread-impl.c (g_thread_init): Move the thread implementation
	initialization to before assigning GThreadFuncs, which now is just
	struct assigned and not memcpy'ed. Completed check for zero
	members of GThreadFuncs. 

	* makefile.mingw: Don't link to pthread anymore.

	* gthread-win32.c: New file for native thread support for
	win32. Thanks to Hans Breuer <hans@breuer.org> to got me
	kickstarted.

	* Makefile.am: Also distribute gthread-win32.c.

Fri May  4 04:14:45 2001  Tim Janik  <timj@gtk.org>

	* gthread-posix.c (g_cond_timed_wait_posix_impl): don't g_assert()
	the user specified time, but g_return_val_if_fail() here.

2001-04-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c: Added special case for priorities on
	  FreeBSD. Thanks to David Reid <dreid@jetnet.co.uk> for the info.

	* gthread-impl.c: Made two macros safe with ().

2001-03-10  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am: Use the _LIBADD dependency on libglib only on
	Win32.

2001-02-21  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am: Use libglib-1.3.la from top_builddir. Invoke
	libtool with -no-undefined for Win32 and Cygwin.

	* gthread-impl.c (g_thread_init): Win32 code snippet used also on
	Cygwin.

2001-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c: Removed the G_THREAD_USE_PID_SURROGATE
	implementation, which is now in gthread.c.

2001-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-impl.c (g_thread_init_with_errorcheck_mutexes): Call
	g_thread_impl_init(), as g_thread_init won't call it.

	* gthread-impl.c (g_mutex_free_errorcheck_impl): Fixed it for
	real. Sorry for this mess. It looked like a real obvious fix, so I
	didn't check. Bad boy. Added some casts to quiet the compiler.

2001-01-29  Havoc Pennington  <hp@redhat.com>

	* gthread-impl.c (g_mutex_free_errorcheck_impl): hack this so it
	compiles, needs fixing for real.

2001-01-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-impl.c (g_mutex_free_errorcheck_impl): Add new check to
	errorcheck mutexes to abort, if a locked mutex is freed.

2001-01-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-solaris.c, gthread-posix.c: Made g_thread_min_stack_size
	static.

2000-11-28  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-impl.c: Revamped errorcheck mutexes and added errorcheck
	cond_wait() and cond_timed_wait() funtions. This makes he whole
	thing work. Now we only show the location of the locking/unlocking
	for -DG_ERRORCHECK_MUTEXES and not the name of the mutex.

2000-11-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-impl.c, gthread-posix.c, gthread-solaris.c: Removed
	g_thread_map_priority function in favour of the
	g_thread_priority_map array.  Initialize the array with
	PRIORITY_{...}_VALUE, if available and interpolate beetween the
	bounds if .._NORMAL_.. and .._HIGH_.. are not available.

	* gthread-posix.c: If we should use the PID niceness as a
	surrogate for thread priorities (G_THREAD_USE_PID_SURROGATE is
	defined), then disable normal priority handling and use PIDs and
	setpriority() instead. Depends on the thread to write its PID into
	the place after the thread id right after thread creation.

2000-11-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c: Include <sched.h> if available.

2000-11-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-none.c: Add G_MUTEX_SIZE as needed for gthread-impl.c

2000-10-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* Makefile.am : Add @GLIB_DEBUG_FLAGS@ to INCLUDES for accessing
	-DG_ENABLE_DEBUG as needed in gthread-posix.c.

	* gthread-posix.c: Revamped error handling for native thread
	function calls. Now EPERM errors are ignored for some commands and
	only a warning message is output once (at first occurrence).

2000-10-15  Raja R Harinath  <harinath@cs.umn.edu>

	* Makefile.am (BUILT_EXTRA_DIST): New variable.
	(dist-hook): Handle $(BUILT_EXTRA_DIST).

2000-09-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-impl.c: Added errorcheck mutexes. New exported function
	g_thread_init_with_errorcheck_mutexes, which is called instead of
	g_thread_init, when compiled with -DG_ERRORCHECK_MUTEXES. New
	static functions
	g_mutex_(new|lock|trylock|unlock|free)_errorcheck_impl to
	implement errorcheck mutexes.

	* gthread-posix.impl.c, gthread-solaris-impl.c: Define the size of
	a mutex.

2000-09-21  Tor Lillqvist  <tml@iki.fi>

	* makefile.mingw.in: Use pthreads macros from ../build.

2000-09-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c, gthread-solaris.c:
	s/G_MICROSEC/G_USEC_PER_SEC/ and s/G_NANOSEC/G_NSEC_PER_SEC/	

2000-09-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c (g_thread_create_posix_impl): Use GError to
	report errors.

	* gthread-solaris.c (g_thread_create_solaris_impl): Use GError to
	report errors as well.
	
2000-05-13  Tor Lillqvist  <tml@iki.fi>

	* makefile.mingw.in: New file, with gthread stuff moved from
	../makefile.mingw.in.

	* Makefile.am: Add to EXTRA_DIST, add rule to build makefile.mingw.

2000-04-25  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-solaris.c (g_mutex_new_solaris_impl): Changed the scope
	of the initialized mutex to USYNC_THREAD. Thanks to Soeren
	Sandmann <sandmann@daimi.au.dk> for pointing that out.

2000-03-20  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c (posix_check_for_error): Forgot a '}' in a macro
	for DCE-threads. Thanks to Karl Nelson <kenelson@ece.ucdavis.edu>
	for pointing that out.

2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c: Don't use priorities for threads, when the
	minimal/maximal priorities couldn't be determined at configure
	time.

	* gthread-posix.c: Don't check for errors, when setting the scope
	of a tread to system, as some posix implementations can't do that
	and we don't want the thing to fail because of that.

2000-02-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c, gthread-solaris.c: check for sysconf
	(_SC_THREAD_STACK_MIN), which returns the minimal stack size for
	new threads. Patch from Soeren Sandmann <sandmann@daimi.au.dk>.

1999-11-16  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c, gthread-solaris.c: Changed the prototype of
	thread_create and thread_self to return the system thread into
	provided memory instead of a return value. This is necessary, as
	HPUX has a pthread_t, that is bigger than the biggest integral
	type there. Made some more functions static.

	* gthread-posix.c: Small fixes for DCE threads: Detaching has to
	be done after thread creation for DCE.

1999-06-21  Tor Lillqvist  <tml@iki.fi>

	* gthread-posix.c: Guard pthread_attr_setscope call with test
	for _POSIX_THREAD_PRIORITY_SCHEDULING, which should be defined
	in a <pthread.h> that supports that feature.
	
1999-06-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c, gthread-solaris.c: Added the native
	implementations for the GLib's extended thread support.

	* gthread-nspr.c: Removed for good. NSPR is nothing we would want
	to build upon.

	* gthread.c: Renamed to gthread-impl.c to avoid confusion with
	../gthread.c (Formerly known as the file called gmutex.c)

	* testgthread.c: Removed. The new and much extended tests are in
	../tests/thread-test.c.

	* Makefile.am: Changed to reflect the changes above.

1999-03-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c: Use the right default arguments for the
	construction of mutexes and conds for dce threads, these are
	&pthread_(cond|mutex)attr_default instead of NULL. Hint from
	D. Emilio Grimaldo Tunon <emilio_tunon@nl.compuware.com>.

1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* Makefile.am (INCLUDES): Added @GTHREAD_COMPILE_IMPL_DEFINES@.

1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c (g_private_get_posix_impl): Fixed typo for DCE
	implementation.

1999-03-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c: Now handle both dce and posix threads. They are
	sufficently equal. Please do not commit my change to
	glib-1-2/gthread/gthread-posix.c from 1999-03-03, as the current
	change will take care of that too.

1999-03-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c: Fixed broken mutex_trylock and slightly broken
	cond_timed_wait functions.

1999-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* testgthread.c (test_mutexes): Use new signature of
	g_static_mutex* functions.

1999-02-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-posix.c (g_private_get_posix_impl): Use the
	HAVE_PTHREAD_GETSPECIFIC_POSIX macro to determine, which signature
	to use for pthread_getspecific.

Tue Jan 19 20:56:02 1999  Tor Lillqvist  <tml@iki.fi>

	* Makefile.am (EXTRA_DIST): Added gthread.def.

Sun Jan 17 10:58:19 1999  Tor Lillqvist  <tml@iki.fi>

	* gthread.def: New file.

1999-01-16 1999  Tor Lillqvist  <tml@iki.fi>

	* gthread-posix.c: Conditionalize <sys/time.h> inclusion.

1999-01-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* testgthread.c: conditionally compile according to the
	G_THREADS_IMPL_??? macros.
	(test_private_func): use rand_r instead of rand to make it
	thread safe.

1998-12-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* testgthread.c (new_thread): As a joinable thread seems to be the
	default on posix, leave the explicit setting out, as it causes
	problems on some older platforms.

Wed Dec 16 22:21:33 CST 1998 Shawn T. Amundson <amundson@gtk.org>

	* gthread-posix.c: use g_free in mutex_free (from Tim Janik)

Thu Dec 17 03:38:57 1998  Tim Janik  <timj@gtk.org>

	* Makefile.am: -DG_LOG_DOMAIN="GThread", we don't need an extern
	variable for that (noticed by Joel Becker <jlbec@ocala.cs.miami.edu>)

Wed Dec 16 03:16:16 1998  Tim Janik  <timj@gtk.org>

	* testgthread.c: s/g_thread_supported/g_thread_supported ()/
	* gthread.c: s/g_thread_supported/g_threads_got_initialized/
	(g_thread_init): bail out if G_THREADS_ENABLED is not defined.

1998-12-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* Makefile.am (EXTRA_DIST): updated.

	* testgthread.c, gthread-*.c: Changed private to private_key to
	avoid problems when compiling with under C++.

	* gthread-none.c: 
	s/g_mutex_functions_for_glib_use/g_thread_functions_for_glib_use/

	* ChangeLog: from now on there is an extra ChangeLog for gthread
	

