Commit Graph

50 Commits

Author SHA1 Message Date
Sebastian Wilhelmi
9600d5cd53 Use g_win32_error_message to beautify error messages.
2001-06-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-win32.c: Use g_win32_error_message to beautify error
	messages.
2001-06-07 10:34:22 +00:00
Hans Breuer
81cd6c9f6c pthread isn't required anymore
2001-05-24  Hans Breuer  <hans@breuer.org>

	* makefile.msc.in : pthread isn't required anymore
2001-05-24 16:36:47 +00:00
Sebastian Wilhelmi
896d677f45 Also return TRUE for late arrived signals. Thanks to Steven Brooks
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.
2001-05-22 14:20:58 +00:00
Sebastian Wilhelmi
d6ed8e36e7 Removed POSIX_*. Defined G_THREAD_SOURCE to "gthread-win32.c".
2001-05-22  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

        * config.h.win32.in: Removed POSIX_*. Defined G_THREAD_SOURCE to
        "gthread-win32.c".

        * glibconfig.h.win32.in: Define G_HAVE_ISO_VARARGS for gcc, don't
        know about MSC. Define G_THREADS_IMPL_WIN32 instead of
        G_THREADS_IMPL_POSIX and define the right static mutex macros and
        types.

        * build/win32/make.mingw (CXX): Removed PTHREAD defs. Added
	-O2 -Wall to compile flags.

        * gthread/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.

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

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

        * gthread/Makefile.am: Also distribute gthread-win32.c.
2001-05-22 12:28:06 +00:00
Tim Janik
4d7747a58e don't g_assert() the user specified time, but g_return_val_if_fail() here.
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-05-08 05:25:35 +00:00
Sebastian Wilhelmi
72cab5027f Added special case for priorities on FreeBSD. Thanks to David Reid
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-04-03 12:49:44 +00:00
Tor Lillqvist
8f69a82ccb Use the _LIBADD dependencies on libglib only on Win32.
2001-03-10  Tor Lillqvist  <tml@iki.fi>

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

	* gobject/gobject.def: Add a couple of missing entries.
2001-03-10 20:03:53 +00:00
Tor Lillqvist
9c5f5a01ce Use libglib-1.3.la from top_builddir. Invoke libtool with -no-undefined
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-03-09 21:41:37 +00:00
Sebastian Wilhelmi
efb2e89e07 Reverted the changes necessary to enlarge the system thread for
2001-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* acconfig.h, configure.in: Reverted the changes necessary to
	enlarge the system thread for G_THREAD_USE_PID_SURROGATE.

	* gthread.c: Now implement G_THREAD_USE_PID_SURROGATE in gthread.c
	instead of gthread/gthread-posix.c. While the latter has the
	advantage, that it is conceptually cleaner, it makes
	g_thread_self_posix_impl _very_ slow and that hurts
	GStaticRecMutex and other things. So the new version is less
	clean, but faster.

	* gthread-posix.c: Removed the G_THREAD_USE_PID_SURROGATE
	implementation, which is now in gthread.c.
2001-02-15 16:43:02 +00:00
Sebastian Wilhelmi
f9dfcb27b7 Call g_thread_impl_init(), as g_thread_init won't call it.
2001-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

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


	* glib/glib-sections.txt, glib/tmpl/threads.sgml: Added
	g_static_mutex_free

	* gthread.c, gthread.h: Added g_static_mutex_free to allow using
	GStaticMutexes with limited lifetime without leaking.

	* configure.in: GStaticMutex doesn't have to provide extra space
	for debugging information for G_ERRORCHECK_MUTEXES, as then the
	non-default implementation (runtime_mutex) is used anyway.
2001-01-30 14:16:56 +00:00
Sebastian Wilhelmi
1f46d9f68f Added debug information for g_mutex_free calls, if G_ERRORCHECK_MUTEXES is
2001-01-30  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread.h (g_cond_wait): Added debug information for
	g_mutex_free calls, if G_ERRORCHECK_MUTEXES is defined.

	* gthread/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-30 09:03:22 +00:00
Havoc Pennington
e6e88520c9 hack this so it compiles, needs fixing for real.
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 17:31:40 +00:00
Sebastian Wilhelmi
c96ad49767 Broadcast the condition, if there are waiting readers, as all might read
2001-01-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread.c: Broadcast the condition, if there are waiting
	readers, as all might read at the same time. Only signal the
	writer thread, if there are no more readers.

	* gthread/gthread-impl.c (g_mutex_free_errorcheck_impl): Add
        new check to errorcheck mutexes to abort, if a locked mutex is freed.
2001-01-29 16:32:26 +00:00
Sebastian Wilhelmi
b1d840c20a Made g_thread_min_stack_size static.
2001-01-03  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

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

2CVS: ----------------------------------------------------------------------
2001-01-03 17:00:43 +00:00
Sebastian Wilhelmi
fe0f325777 Revamped errorcheck mutexes and added errorcheck cond_wait() and
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.

	* gthread.c: Set the thread data before locking the mutex, because
	the locking call might use g_thread_self ().

	* gthread.h: Do only show the location of the locking/unlocking
	for -DG_ERRORCHECK_MUTEXES and not the name of the mutex. Add the
	errorcheck capability for g_cond_wait and g_cond_timed_wait as
	well.
2000-11-28 12:56:57 +00:00
Sebastian Wilhelmi
a3036a5bd2 Add a surrogate for thread priorities using PID niceness for systems with
2000-11-21  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Add a surrogate for thread priorities using PID
	niceness for systems with no thread priorities and different PIDs
	for threads of the same process (most notably: Linux). Define
	G_THREAD_USE_PID_SURROGATE in that case, as used by
	gthread-posix.c. Also make the system thread bigger by
	sizeof (long) to contain the thread's PID.

	* gfileutils.c: Include stdlib.h for mkstemp prototype.

	* gthread.c: Add priority range checks to the affected functions.

	* gthreadpool.c: Remove unused variable.

	* 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-21 15:27:44 +00:00
Sebastian Wilhelmi
b9731eb861 Check for the sched.h header and include it on gthread/gthread-posix.c if
2000-11-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Check for the sched.h header and include it on
	gthread/gthread-posix.c if available.

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

	* configure.in: Add -D_POSIX4_DRAFT_SOURCE to
	GTHREAD_COMPILE_IMPL_DEFINES. Also add -D_POSIX4A_DRAFT10_SOURCE
	to G_THREAD_CFLAGS. Really deploy GTHREAD_COMPILE_IMPL_DEFINES,
	when searching for thread libs. Look for sched_* functions in
	-lrte as well. All of that is necessary on DG/UX.

	* configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADERS in
	various places to make it work more reliable, to make it accept
	macros instead of functions etc.

	* configure.in: Replace some NULL's for checks with 0 to make it
	work without stdio.h everywhere.

	* configure.in, gutils.c: changed the test for getpwuid_r to first
	test for a posix version and then for a non-posix version. No code
	change in gutils.c. Again this change deals better with getpwuid_r
	being a macro and not a function. Most of the above with kind help
	from Tethys <tet@isengard.europe.dg.com>. This fixes Bug #13403.
2000-11-15 17:48:43 +00:00
Sebastian Wilhelmi
1d126e44f2 Add G_MUTEX_SIZE as needed for gthread-impl.c
2000-11-02  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-none.c: Add G_MUTEX_SIZE as needed for gthread-impl.c
2000-11-02 13:04:16 +00:00
Sebastian Wilhelmi
b13320f78b Add @GLIB_DEBUG_FLAGS@ to INCLUDES for accessing -DG_ENABLE_DEBUG as
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-25 10:58:46 +00:00
Raja R Harinath
a626a650e5 gmodule: New variable. (dist-hook): Handle $(BUILT_EXTRA_DIST).
gmodule:
* Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).

gobject:
* Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).
(*): Remove traces of @STRIP_{BEGIN,END}@.

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

docs/reference:
'make distcheck' fixes.
* glib/Makefile.am (EXTRA_DIST): Add $(DOC_MODULE)-decl.txt.
(html): Run 'gtkdoc-fixxref' in $(srcdir).
(dist-check-gtkdoc): Add missing quote.
(dist-hook): Copy in dependency order, so that none of the
makerules are fired in a tarball build.

* gobject/Makefile.am: Likewise.

toplevel:
Remove need for acconfig.h, and misc. cleanups.
* acglib.m4 (GLIB_SIZEOF): Add 'autoheader' comment to
AC_DEFINE_UNQUOTED.
(GLIB_BYTE_CONTENTS): Likewise.

* configure.in: Add 'autoheader' comments to all AC_DEFINE(...)
and AC_DEFINE_UNQUOTED(...) lines.
Replace AC_MSG_CHECKING/AC_CACHE_VAL with AC_CACHE_CHECK.
(AM_PROG_LIBTOOL): Move after AC_PROG_CC.

* acconfig.h: Empty out.

* Makefile.am (BUILT_EXTRA_DIST): New variable.  List 'dist'able
files that are created in the builddir.
(dist-hook): Handle those files.
(libglib_1_3_la_SOURCES): Remove @ALLOCA@.  @ALLOCA@ should only
be used in an _LDADD or _LIBADD, since it expands (if necessary)
to 'alloca.o'.

* tests/Makefile.am (BUILT_EXTRA_DIST): New variable.
(dist-hook): Handle $(BUILT_EXTRA_DIST).
2000-10-16 01:02:19 +00:00
Sebastian Wilhelmi
7633908c93 Added errorcheck mutexes. These are activated through the preprocessor
2000-09-29  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in, glib.h: Added errorcheck mutexes. These are
	activated through the preprocessor symbol
	G_ERRORCHECK_MUTEXES. Need to add an extra word to StaticMutex in
	order to achieve this. g_(static_)mutex_* functions instrument the
	mutex operations with mutex name and location, when compiled with
	-DG_ERRORCHECK_MUTEXES. g_thread_init activates the errorcheck
	mutexes, when compiled with -DG_ERRORCHECK_MUTEXES.

	* gthread/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/gthread-posix.impl.c, gthread/gthread-solaris-impl.c:
        Define the size of a mutex.
2000-09-29 13:10:41 +00:00
Tor Lillqvist
599be596c2 Add gconvert.o. Use libiconv.
2000-09-21  Tor Lillqvist  <tml@iki.fi>

	* makefile.mingw.in: Add gconvert.o. Use libiconv.

	* config.h.win32.in: Define HAVE_GETCWD.

	* glib.def: Add new entry points.

	* gthread/makefile.mingw.in: Use pthreads macros from ../build.
2000-09-21 16:17:32 +00:00
Sebastian Wilhelmi
ef2dcd6265 s/G_MICROSEC/G_USEC_PER_SEC/
2000-09-06  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h, gtimer.c, tests/thread-test.c:
	s/G_MICROSEC/G_USEC_PER_SEC/

	* gthread/gthread-posix.c, gthread/gthread-solaris.c:
	s/G_MICROSEC/G_USEC_PER_SEC/ and s/G_NANOSEC/G_NSEC_PER_SEC/
2000-09-06 13:56:17 +00:00
Sebastian Wilhelmi
4d1cb41ef9 Use GError to report errors as well.
2000-09-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread-solaris.c (g_thread_create_solaris_impl): Use GError to
	report errors as well.
2000-09-01 13:33:04 +00:00
Sebastian Wilhelmi
64bbfbb6da Include gerror.h before it is used for some g_thread_* functions.
2000-09-01  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h: Include gerror.h before it is used for some g_thread_*
	functions.

	* gthread.c, gthreadpool.c, glib.h: Enable error reporting for
	thread creation, namly for g_thread_create, g_thread_pool_new,
	g_thread_pool_push and g_thread_pool_set_max_threads.

	* tests/thread-test.c, tests/threadpool-test.c: Adapted
	accordingly.

	* gthread-posix.c (g_thread_create_posix_impl): Use GError to
	report errors.
2000-09-01 13:03:23 +00:00
Tor Lillqvist
77866eaf9b makefile.mingw.in tests/makefile.mingw.in Rename makefile.cygwin(.in) to
2000-05-13  Tor Lillqvist  <tml@iki.fi>

* makefile.mingw.in
* tests/makefile.mingw.in
* build-dll: Rename makefile.cygwin(.in) to
makefile.mingw(.in), which better describes what it is. Move the
build of gmodule, gthread and gobject DLLs to makefiles in those
directories. Move resource file handling and build number bump to
build-dll, where it sits much cleaner.

* README.win32
* Makefile.am (EXTRA_DIST): Update accordingly.

* glib.h: Add G_PI, G_PI_2, G_PI_4, G_E, G_LN2, G_LN10 and
G_SQRT2. M_PI etc aren't necessarily in <math.h> in strict ISO C
implementations.

* glib.def: Add g_strcanon.

* gtree.c (g_tree_node_rotate_left): Remove unused variables.

* gwin32.c (g_win32_opendir): Remove unneeded statement.

gmodule:

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

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

gobject:
* makefile.mingw.in
* gobject.def
* gobject.rc.in: New files, for Win32 (mingw) build.

* Makefile.am: Add to EXTRA_DIST. Add rules to produce the
corresponding non-*.in files.

* gtype.h: (Win32:) Mark _g_type_fundamental_last for
export/import from DLL.

gthread:
* 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-05-13 19:30:58 +00:00
Sebastian Wilhelmi
7e3c98f8e9 Changed the scope of the initialized mutex to USYNC_THREAD. Thanks to
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-04-25 13:44:43 +00:00
Sebastian Wilhelmi
68c4ed996f Forgot a '}' in a macro for DCE-threads. Thanks to Karl Nelson
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-20 16:43:28 +00:00
Sebastian Wilhelmi
5e7134375e Added the missing POSIX_NO_YIELD and POSIX_NO_PRIORITIES warning messages.
2000-03-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Added the missing POSIX_NO_YIELD and
	POSIX_NO_PRIORITIES warning messages.

	* configure.in: Use AC_TRY_RUN instead of AC_TRY_LINK, to test for
	real thread support. On solaris pthread_create can be linked to
	even in -lc, but it doesn't work then.

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

	* configure.in, gthread.c: Always define GSystemThread in
	glibconfig.h to represent a system thread.

	* configure.in: Do not use native recursive threads, when
	possibe. We use some features, that they do not expose (namely the
	depth counter).

	* glib.h, gthread.c: Redefined GStaticRecMutex. The functions are
	now implemented in a different way, which should be way
	faster. Alsothere are now functions g_static_rec_mutex_unlock_full
	and g_static_rec_mutex_lock_full to leave/enter a recursive mutex
	completly.

	* gthread.c (g_thread_self): Do not test the system_thread to be
	non-zero to speed things up.

	* gthread.c (g_mutex_init): Therefore set the system_thread of the
	main thread here.

	* tests/thread-test.c: Rerun all tests once again, but this time
	we fool the system into thinking, that the available thread system
	is not native, but userprovided.

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

	* gthread/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-03-17 14:49:59 +00:00
Sebastian Wilhelmi
ac6c1d7c59 check for sysconf (_SC_THREAD_STACK_MIN), which returns the minimal stack
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>.
2000-02-22 13:11:24 +00:00
Sebastian Wilhelmi
f0f028abd2 Changed the prototype of thread_create and thread_self to return the
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-11-16 10:29:27 +00:00
Tim Janik
87c7aeb93b 18:36. incorporated proposed cleanups from gtk-devel-list.
Sat Jul 24 20:11:35 1999  Tim Janik  <timj@gtk.org>

        * merged GLib 1.3.0 with glib-1.2.3 from Fri Jul 16 22:18:36.
        * incorporated proposed cleanups from gtk-devel-list.

        * bumped version number to GLib-1.3.1

        * glib.h:
        * gqueue.c:
        * gstring.c:
        * glist.c:
        removed string tokenisation (we got g_strsplit() and g_strjoin()
        already) and readline functions.
        s/g_list_delete/g_list_delete_link.
        implemented g_slist_delete_link.
        removed notion of g_ATEXIT() macro in glib.h, this is an *internal*
        macro, g_atexit() is provided for public consumption.
        added GTrashStack inline utility functions.
        reimplement double eneded queues.
        removed GStack implementation, people can use a queue or a (singly)
        linked list for this task.
        deprecated g_strescape(), we need the SunOS variants here.

        * gdate.c: added DEBUG_MSG() macro to wrap old messages.

        * *.*: CVS merges.

        * upgrade to libtool 1.3.3.
1999-07-24 18:50:58 +00:00
Tor Lillqvist
be80f9a106 Update the pthreads snapshot version we want. Advice how to hand-expand
* README.win32: Update the pthreads snapshot version we want.
	Advice how to hand-expand the makefile.*.in files.

	* config.h.win32.in: Define values needed by Sebastian Wilhelmi's
	new thread stuff.

	* glib.def: Add new functions.

	* glibconfig.h.win32.in: Update the pthreads snapshot version.
	Fix typo.

	* gthread.c: Include config.h, guard inclusion of unistd.h.  When
 	using gcc on Win32, g_thread_functions_for_glib_use must be marked
 	for export here, too.

	* gtimer.c: Implement g_usleep on native Win32 using Sleep (which
	only has millisecond granularity, though).

	* makefile.cygwin.in
	* makefile.msc.in: Update pthreads snapshot version. File
	name changes. Remove testgthread.

	* tests/makefile.cygwin.in
	* tests/makefile.msc.in: Add thread-test. Link with gthread lib.

	* 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-20 22:20:43 +00:00
Sebastian Wilhelmi
90f6cc9bf2 Completed the thread support in GLib. Thread creation, prioritizing
1999-06-17  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in, acglib.m4, acconfig.h, glib.h, gthread.c:
	Completed the thread support in GLib. Thread creation,
	prioritizing threads, yielding, joining threads as well as
	reader/writer locks and recursive mutexes are now in place. Please
	test heavily on your platform. It is so far tested on
	Linux/i386/pthreads, Solaris/Sparc/pthreads and
	Solaris/Sparc/solaristhreads.

	* gtimer.c, glib.h: Implement g_usleep (gulong microseconds) for
	thread safe sleeping. (sleep() is not MT-safe at all!)

	* gutils.c: Avoid compiler warning.

	* tests/Makefile.am, tests/thread-test.c: New program to test some
	aspects of the thread implementation.

	* gthread.c, Makefile.am: Renamed from gmutex.c to reflect the
	change of content.

	* configure.in: Purged all appearances of nspr.

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

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

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

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

	* gthread/Makefile.am: Changed to reflect the changes above.
1999-06-17 15:39:31 +00:00
Sebastian Wilhelmi
8b63644aab Use the right default arguments for the construction of mutexes and conds
1999-03-31  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gthread/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-31 09:28:59 +00:00
Sebastian Wilhelmi
3e95674232 added new AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES) to hold various defines
1999-03-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: added new AC_SUBST(GTHREAD_COMPILE_IMPL_DEFINES)
	to hold various defines to get the right thread implementation on
	different platforms. Also look in -ldce for pthread_create. Should
	make it work on HP-UX 10.x.

	* gthread/Makefile.am (INCLUDES): Added @GTHREAD_COMPILE_IMPL_DEFINES@.
1999-03-18 14:41:38 +00:00
Sebastian Wilhelmi
cc7f889607 Test for posix threads first, then for dce threads.
1999-03-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

       * configure.in: Test for posix threads first, then for dce threads.

       * gthread/gthread-posix.c (g_private_get_posix_impl): Fixed
       typo for DCE implementation.
1999-03-12 15:28:36 +00:00
Sebastian Wilhelmi
4c63008b6c Revamped the thread configure stuff. Now dce threads (old posix draft) are
1999-03-11  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in: Revamped the thread configure stuff. Now dce
	threads (old posix draft) are recogniced. This is necessary,
	because dce threads are in fact working quite differently from
	posix threads. Also changed the conditions for checking for MT
	safe functions a bit, because G_THREADS_IMPL_NONE still have to
	compile thread safe.

	* gthread/gthread-posix.c: Now handle both dce and posix
	threads. They are sufficently equal.

NOTE: Please do not commit my change to
glib-1-2/{acconfig.h,configure.in,config.h.win32} from 1999-03-03, as
the current change will take care of that too.
1999-03-11 17:38:51 +00:00
Sebastian Wilhelmi
8168836cd2 Changed signature of all g_static_mutex_* functions to take a pointer
1999-02-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h, glibconfig.h.win32, configure.in: Changed signature of
	all g_static_mutex_* functions to take a pointer rather than the
	struct itself. This is not an issue at the moment, because those
	funcs are really macros, but is it un'G'ish and might fall on our
	feet in the future.

	* gthread/testgthread.c (test_mutexes): Use new signature of
	g_static_mutex* functions.
1999-02-15 08:26:00 +00:00
Sebastian Wilhelmi
fa5d3b74b0 Changed the test for getpwuid_r to exclude those systems (i.e. IRIX), that
1999-02-08  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in, acconfig.h: Changed the test for getpwuid_r to
	exclude those systems (i.e. IRIX), that set ENOSYS after the call.
	Test, if pthread_getspecific is posix like or something different,
	as on PCThreads.

	* gthread/gthread-posix.c (g_private_get_posix_impl): Use the
	HAVE_PTHREAD_GETSPECIFIC_POSIX macro to determine, which signature
	to use for pthread_getspecific.
1999-02-08 17:14:44 +00:00
Tor Lillqvist
32dbc0d51c More Win32 updates. Add missing Win32 files to distributed files.
Remove the obsolete makefile.lcc.
1999-01-19 21:13:59 +00:00
Tor Lillqvist
04d3d1b219 Oops, ChangeLog entries too, of course. 1999-01-17 11:20:31 +00:00
Tor Lillqvist
f477518c3a Merge in current Win32 version. Almost no Unix code touched.
* README.win32: More text.

	* config.h.win32 glibconfig.h.win32: Update to match the
	corresponding generated files on Unix.

	* makefile.msc: Update with new source files, and gthread
 	library. Use the compiler flag -MD instead of using -D_DLL and
	"/nodefaultlib:libc msvcrt.lib" in the link phase.

	* glib.def: Include new functions, drop removed ones.

	* glib.h: Add comments about main loop and polling on Win32. (In
	general, it's only for the GIMP's use.) Add Win32 IO Channel
	functions. Remove the obsoleted old IO Channel stuff (which was
	in #if 0 already).

	* giowin32.c: New file.

	* gmain.c: Include config.h, conditionalize <sys/time.h>
 	inclusion.  Add g_poll implementation for Win32 (only for the
 	GIMP's needs for now, it's hard or even impossible to be as clean
 	and generic as on Unix). Implement g_get_current_time on Win32. If
 	threads aren't supported, don't try to wake up main thread's
 	loop. On Win32, use a semaphore and not a pipe to wake up the main
 	loop.

	* gmessages.c: On Win32, allocate a console window if the standard
	output handle is invalid before writing to stdout, and reopen stdout
	to that console window.

	* giochannel.c: Conditionalize unistd.h inclusion. Some indentation
	cleanup.

	* gstrfuncs.c: Include <signal.h>.

	* gutils.c: On Win32, also check the HOMEDRIVE and HOMEPATH
	environment variables.

	* gmodule-dl.c gmodule-dld.c: In
 	_g_module_build_path, don't add the "lib" prefix and
 	".so" or ".sl" suffix if already there.

	* gmodule-win32.c: Likewise for the ".dll" suffix.

	* gthread-posix.c: Conditionalize <sys/time.h> inclusion.
1999-01-16 23:46:42 +00:00
Sebastian Wilhelmi
81f8d0bb10 Here we must replace getpwuid by getpwuid_r, but as I do not know how for
1999-01-07  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* gutils.c (g_get_any_init): Here we must replace getpwuid by
	getpwuid_r, but as I do not know how for now, I just made a FIXME
	note ;-)

	* gdate.c (g_date_set_time): localtime --> localtime_r to make it
	thread safe.

	* configure.in: We do not need to check for broken solaris mutex
	intitializer any longer. Provide a macro to show the used thread
	implementation. Not nice, but this is needed until thread support
	is completed here inside glib.

	* gthread/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.
1999-01-07 16:17:42 +00:00
Sebastian Wilhelmi
ab4b645486 Changed the last pthread_cond_init to pthread_attr_init.
1998-12-18  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* configure.in (have_threads): Changed the last pthread_cond_init
	to pthread_attr_init.

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.
1998-12-18 09:20:52 +00:00
CST 1998 Shawn T. Amundson
77ccad4d2f giounix.c: s/g_main_poll_add/g_main_remove_add/g
Wed Dec 16 22:32:13 CST 1998 Shawn T. Amundson <amundson@gtk.org>

        * glib.h:
          giounix.c: s/g_main_poll_add/g_main_remove_add/g
                     s/g_main_poll_remove/g_main_remove_poll/g
                     s/g_main_poll_add_unlocking/g_main_add_unlocking_poll/g
          (from Tim Janik)

        * gthread-posix.c: use g_free in mutex_free (from Tim Janik)
1998-12-17 04:36:04 +00:00
Tim Janik
2f1f82f60f -DG_LOG_DOMAIN="GThread", we don't need an extern variable for that
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>)
1998-12-17 02:42:57 +00:00
Tim Janik
b2e318ff3e version bump to 1.1.8, binary age 0, interface age 0.
Wed Dec 16 03:16:58 1998  Tim Janik  <timj@gtk.org>

        * configure.in: version bump to 1.1.8, binary age 0, interface age 0.

        * glib.h: changed g_lock() to G_LOCK(), g_unlock() to G_UNLOCK() and
        g_trylock() to G_TRYLOCK(), since these are macros that expand to
        nothing with --disable-threads.
        changed G_LOCK_DEFINE() to G_LOCK_DECLARE() and introduced
        G_LOCK_DECLARE_STATIC() to achive the results of static G_LOCK_DECLARE().
        changed semantics of g_thread_supported to g_thread_supported() so it
        can be used as a function like g_module_supported(). the actuall
        definition is still a macro that expands into a variable for
        performance reasons though.
        various indentation and coding style cleanups.

        * configure.in: added --enable-threads that defaults to yes.

        * gmutex.c: changed tests g_thread_supported to g_thread_supported (),
        changed variable settings of g_thread_supported
        to g_threads_got_initialized.

        garray.c:
        gcache.c:
        gdataset.c:
        gdate.c:
        ghash.c:
        glist.c:
        gmain.c:
        gnode.c:
        gslist.c:
        gstring.c:
        gtree.c:
        gutils.c:
        changed s/g_lock/G_LOCK/, s/g_unlock/G_UNLOCK/,
        s/static G_LOCK_DEFINE/G_LOCK_DECLARE_STATIC/.
1998-12-16 05:38:35 +00:00
Sebastian Wilhelmi
2c30e8620f updated.
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++.
1998-12-15 17:49:30 +00:00
Sebastian Wilhelmi
fc29b682e3 s/g_mutex_functions_for_glib_use/g_thread_functions_for_glib_use/
1998-12-15  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* 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
1998-12-15 16:47:31 +00:00