=== ChangeLog discontinued ===

	With the move to git, GLib is switching from a ChangeLog file
	to relying on commit messages to provide change history. Please
	see README.commits for guidance on the expected message format.

2009-03-13  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.20.0 ===

2009-03-02  Matthias Clasen <mclasen@redhat.com>

	* === Released 2.19.10 ===

2009-03-02  Matthias Clasen <mclasen@redhat.com>

	* === Released 2.19.9 ===

2009-02-17  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.19.8 ===

2009-02-16  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.19.7 ===

2009-02-02  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.19.6 ===

2009-01-19  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.19.5 ===

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

	* === Released 2.19.4 ===

2008-12-15  Matthias Clasen <mclasen@redhat.com>

	* === Released 2.19.3 ===

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

	* === Released 2.19.2 ===

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

	* === Released 2.19.1 ===

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

	* === Released 2.19.0 ===

2008-09-17  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.18.1 ===

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

	* === Released 2.18.0 ===

2008-08-18  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.17.7 ===

2008-08-04  Matthias Clasen  <mclasen@redhat.com>

	Bug 460920 – build fix for --disable-threads

	* gthread-impl.c: Implement g_thread_init_with_errorcheck_mutexes
	in the !G_THREAD_ENABLED case. Pointed out by Jan Nieuwenhuizen

2008-08-04  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.17.6 ===

2008-08-04  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.17.5 ===

2008-07-27  Tor Lillqvist  <tml@novell.com>

	* Makefile.am (gthread-2.0.lib): Pass appropriate -machine flag to lib.exe.

2008-07-21  Matthias Clasen  <mclasen2redhat.com>

	* === Released 2.17.4 ===

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

	* === Released 2.17.3 ===

2008-06-12  Matthias Clasen  <mclasen@redhat.com>
	
	* === Released 2.17.2 ===

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

	* === Released 2.17.1 ===

2008-05-28  Michael Natterer  <mitch@imendio.com>

	* Makefile.am: don't define G_DISABLE_SINGLE_INCLUDES, it's in
	the global CPPFLAGS now.

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

	* === Released 2.17.0 ===

2008-05-05  Michael Natterer  <mitch@imendio.com>

	* Makefile.am. build with G_DISABLE_SINGLE_INCLUDES to prevent
	code from being checked in that breaks the build of applications
	which use G_DISABLE_SINGLE_INCLUDES.

2008-03-16  Tor Lillqvist  <tml@novell.com>

	* Makefile.am: Define gthread_def locally here instead of using an
	Autoconf variable.

2008-03-10  Matthias Clasen  <mclasen@redhat.com>
	
	* === Released 2.16.1 ===

2008-03-10  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.16.0 ===

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

	* === Released 2.15.6 ===

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
	

