Commit Graph

2026 Commits

Author SHA1 Message Date
Tim Janik
10a3867a6e test high contention on closure reference counts to trigger and catch
Mon Aug  1 23:33:47 2005  Tim Janik  <timj@imendio.com>

        * tests/refcount/closures.c: test high contention on closure
        reference counts to trigger and catch non-atomic updates.

        * tests/refcount/objects.c:
        * tests/refcount/objects2.c:
        * tests/refcount/properties.c:
        * tests/refcount/properties2.c:
        * tests/refcount/signals.c:
        fixed up test and threading fundamentals. variables accessed from all
        threads need to be volatile. context switches are enforced by using
        g_thread_yield(), not g_usleep(1) which may result in busy waits on
        some platforms. for testcode, always consider all warnings and
        critical messages fatal. issue the currently running program on
        stdout. improved progress indicators.

        * tests/refcount/properties.c:
        * tests/refcount/objects.c:
        don't overdo the number of testing threads to keep the testing machine
        usable, 2 threads can produce as much contention as 20 if executing the
        same code.

        * tests/refcount/signals.c: only start 1 thread per object. GObject
        doesn't provide mutually exclusive object access, but only mutually
        exclusive reference count modification.

        * tests/Makefile.am: added closures test.
2005-08-01 21:47:15 +00:00
Tor Lillqvist
7aa2e37f5e Ugh, fix braino. 2005-08-01 19:23:10 +00:00
Tor Lillqvist
d5a989875b Make it pass on Win32. (from_uri_tests[]): Take into consideration that on
2005-08-01  Tor Lillqvist  <tml@novell.com>

	* tests/uri-test.c: Make it pass on Win32.
	(from_uri_tests[]): Take into consideration that on Win32 we don't
	return "localhost" hostnames.
	(safe_strcmp_filename): New function that considers slash and
	backslash equal on Win32.
	(run_roundtrip_tests): Use safe_strcmp_filename().
2005-08-01 19:17:35 +00:00
Tim Janik
2d1cf6c139 moved G_DATALIST_*_POINTER() macros here, because proper use requires the
Sun Jul 31 01:50:20 2005  Tim Janik  <timj@gtk.org>

        * glib/gdataset.c:
        moved G_DATALIST_*_POINTER() macros here, because proper use requires
        the global g_dataset_global mutex to be acquired.
        g_datalist_id_get_data():
        g_datalist_unset_flags():
        g_datalist_set_flags(): properly acquire and release dataset mutex.

        * glib/gdatasetprivate.h: implement G_DATALIST_GET_FLAGS() via atomic
        pointer access to account for memory barriers. moved all other macros.
2005-07-31 00:05:39 +00:00
Matthias Clasen
5f70ee19f8 Include glibintl.h, not gi18n.h, noticed by Dan Winship.
2005-07-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/goption.c: Include glibintl.h, not gi18n.h, noticed
	by Dan Winship.
2005-07-26 19:41:05 +00:00
Matthias Clasen
ab033c6d1b Try -mt as compiler flag for threads, needed for the HP C compiler on
2005-07-26  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Try -mt as compiler flag for threads, needed
	for the HP C compiler on HP-UX.  (#163051, Paul Cornett)
2005-07-26 19:37:34 +00:00
Matthias Clasen
27096aedb5 Fix a typo in the docs. (#311569, Ross Burton)
2005-07-26  Matthias Clasen  <mclasen@redhat.com>

	* glib/ghash.c (g_hash_table_foreach): Fix a typo in the
	docs.  (#311569, Ross Burton)
2005-07-26 15:49:15 +00:00
Matthias Clasen
8fca0ec9cf Bump version 2005-07-22 17:21:52 +00:00
Matthias Clasen
3c6e2da565 2.7.4 2005-07-22 17:02:04 +00:00
Matthias Clasen
6589b38f98 Updates 2005-07-21 19:27:00 +00:00
Manish Singh
6394b31435 use G_CALLBACK for signal connections.
2005-07-20  Manish Singh  <yosh@gimp.org>

        * tests/refcount/signals.c: use G_CALLBACK for signal connections.
2005-07-20 20:46:58 +00:00
Matthias Clasen
8ac11176ab Don't get stuck in here if immediate is TRUE. (#310954, Hong Jen Yee)
2005-07-20  Matthias Clasen  <mclasen@redhat.com>

	* glib/gthreadpool.c (g_thread_pool_free): Don't get
	stuck in here if immediate is TRUE.  (#310954,
	Hong Jen Yee)

	* tests/threadpool-test.c (main): Test immediate == TRUE.
2005-07-20 17:06:02 +00:00
Tor Lillqvist
f0a0fe7a44 Make this an inline function. Define it only if G_CAN_INLINE and not C++.
2005-07-20  Tor Lillqvist  <tml@novell.com>

	* glib/gutils.h (g_win32_get_system_data_dirs): Make this an
	inline function. Define it only if G_CAN_INLINE and not
	C++. (#173098)
2005-07-20 08:37:13 +00:00
Matthias Clasen
912e4ea3cb Avoid an unnecessary strlen if len is -1. (#169692, Benoit Dejean)
2005-07-19  Matthias Clasen  <mclasen@redhat.com>

        * glib/gstring.c (g_string_chunk_insert_len): Avoid
        an unnecessary strlen if len is -1.  (#169692,
        Benoit Dejean)
2005-07-19 19:05:19 +00:00
Matthias Clasen
cf17bb79d2 Fix g_atomic_pointer_compare_and_exchange on sparc64. (#167572, Gert
2005-07-19  Matthias Clasen  <mclasen@redhat.com>

        * glib/gatomic.c (g_atomic_pointer_compare_and_exchange):
        Fix g_atomic_pointer_compare_and_exchange on sparc64.
        (#167572, Gert Doering)
2005-07-19 15:30:23 +00:00
Matthias Clasen
0719f3b463 Bump version 2005-07-15 17:41:28 +00:00
Matthias Clasen
1760b7074d 2.7.3 2005-07-15 17:28:17 +00:00
Matthias Clasen
39ea11ce6b Make refcounting threadsafe by using atomic operations. (#166020, Wim
2005-07-15  Matthias Clasen  <mclasen@redhat.com>

	Make refcounting threadsafe by using atomic
	operations.  (#166020, Wim Taymans)

	* gobject.c: Use a recursive lock to protect the
	notify queue.
	(g_object_unref): Get rid of g_object_last_unref and
	do the last unref handling in g_object_unref.
	(g_object_ref, g_object_unref): Use atomic operations.

	* gsignal.c (struct _HandlerMatch): Use a full integer
	for the ref_count field.
	(handler_ref, handler_unref_R): Use atomic operations.

	* gparam.c (g_param_spec_ref, g_param_spec_unref):
	Use atomic operations instead of a lock to make the
	refcounting threadsafe.

	* gclosure.c (g_closure_ref, g_closure_unref): Use atomic
	operations. This is more complicated here, since the
	refcount is stored in a bitfield, so we also have
	to access all other bitfield members atomically.

	* gsignal.c (handlers_find): Read the meta_marshal flag
	of the closure atomically.

	* tests/Makefile.am (SUBDIRS): Add tests/refcount

	* configure.in: Add tests/refcount

	* tests/refcount/properties.c: Test property changes
	from multiple threads.

	* tests/refcount/signals.c: Test signal emission from
	multiple threads.

	* tests/refcount/objects.c: Test refcounting from
	multiple threads.

	* tests/refcount/objects2.c:
	* tests/refcount/properties2.c: Tests to measure the
	overhead of threadsafe refcounting.

	* glib/giochannel.c (g_io_channel_ref, g_io_channel_unref):
	Use atomic operations to make refcounting
	threadsafe.  (#166020, Wim Taymans)
2005-07-15 16:51:10 +00:00
Matthias Clasen
58729b464b Updates 2005-07-15 15:43:59 +00:00
Matthias Clasen
7221f500f5 Make the tests silent on success.
2005-07-14  Matthias Clasen  <mclasen@redhat.com>

	* tests/spawn-test.c:
	* tests/uri-test.c:
	* tests/thread-test.c:
	* tests/queue-test.c:
	* tests/mainloop-test.c:
	* tests/iochannel-test.c:
	* tests/gio-test.c:
	* tests/child-test.c: Make the tests silent on success.
2005-07-14 05:20:14 +00:00
Matthias Clasen
b36f775177 Fix a typo. (#310243, Richard Laager)
2005-07-13  Matthias Clasen  <mclasen@redhat.com>

	* glib/gfileutils.c (g_mkdir_with_parents): Fix a
	typo.  (#310243, Richard Laager)
2005-07-13 18:59:46 +00:00
Matthias Clasen
7b70e24179 Warn if a short name is not acceptable.
2005-07-13  Matthias Clasen  <mclasen@redhat.com>

	* glib/goption.c (g_option_group_add_entries): Warn if a
	short name is not acceptable.
2005-07-13 13:31:30 +00:00
Matthias Clasen
58dd4814b2 Add and implement a new flag to turn off the automatic <groupname>-
2005-07-12  Matthias Clasen  <mclasen@redhat.com>

	* glib/goption.h (G_OPTION_FLAG_NOALIAS):
	* glib/goption.c: Add and implement a new flag
	to turn off the automatic <groupname>- prefixing
	for conflict resolution of long option names. (#171840,
	Adam McLaurin)

	All optional callback arguments  (#308886, Pawel
	Sliwowski)

	* glib/goption.h (G_OPTION_FLAG_OPTIONAL_ARG):
	* glib/goption.c: Add and implement a new flag
	to indicate that a callback *optionally* takes another
	argument.

	* tests/option-test.c: Add tests for optional arguments.
2005-07-12 18:56:25 +00:00
Matthias Clasen
392980c783 Don't lock if depth is zero. (#310148, Wim Taymans)
2005-07-12  Matthias Clasen  <mclasen@redhat.com>

	* glib/gthread.c (g_static_rec_mutex_lock_full): Don't lock
	if depth is zero.  (#310148, Wim Taymans)
2005-07-12 16:56:51 +00:00
Matthias Clasen
35425ca9d6 Ignore anomalous environment entries which are not of the form
2005-07-10  Matthias Clasen  <mclasen@redhat.com>

	* glib/gutils.c (g_listenv): Ignore anomalous environment
	entries which are not of the form variable=value.  (#309859,
	Morten Welinder)
2005-07-10 04:44:27 +00:00
Tor Lillqvist
521a964f8c Typo. 2005-07-09 00:12:04 +00:00
Tor Lillqvist
6a3a7adc17 Totally rewritten socket channel implementation. See discussion in bug
2005-07-09  Tor Lillqvist  <tml@novell.com>

	* glib/giowin32.c: Totally rewritten socket channel
	implementation. See discussion in bug #147392.
2005-07-08 23:27:31 +00:00
Tor Lillqvist
d22f051252 Don't use autoconf variables for the resource object files on Win32 any
2005-07-09  Tor Lillqvist  <tml@novell.com>

	* configure.in: Don't use autoconf variables for the resource
	object files on Win32 any longer. Instead handle that in the
	Makefile.am files. Check for windres.

	* glibconfig.h.win32.in: Minor tuning to match the
	configure-produced glibconfig.h closely.

	* */Makefile.am: Don't use the scripts in build/win32 to
	compile the .rc file into a resource object file. (This means
	we loose 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.

	* */*.rc.in: Thus replace BUILDNUMBER with 0.
2005-07-08 23:04:06 +00:00
Matthias Clasen
352742b86a Bump version 2005-07-08 19:25:07 +00:00
Matthias Clasen
138f260fbc 2.7.2 2005-07-08 15:48:32 +00:00
Matthias Clasen
fc28f0832f Make the size_t size detection work on AIX. (#309725)
2005-07-07  Matthias Clasen  <mclasen@redhat.com>

	* configure.in: Make the size_t size detection work on AIX.
	(#309725)
2005-07-07 20:37:54 +00:00
Matthias Clasen
3a17f81e3b Require a newer gtk-doc 2005-07-06 04:10:15 +00:00
Hans Breuer
99563f439c include <process.h> for getpid() include <io.h> for close() etc. add
2005-07-01  Hans Breuer  <hans@breuer.org>

	* glib/gmessages.c : include <process.h> for getpid()
	* glib/gmappedfile.c : include <io.h> for close() etc.
	* glib/makefile.msc.in : add gmappedfile.obj
2005-07-02 19:50:29 +00:00
Matthias Clasen
9d6e10125b Don't reverse the order of multiline comments.
2005-07-01  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_get_key_comment):
	(g_key_file_get_top_comment): Don't reverse the order of multiline
	comments.
	(g_key_file_get_group_comment): Actually get the group comment.

	* tests/keyfile-test.c (test_comments): Test that comments are
	handled properly.  (#309263, Mikael Magnusson)
2005-07-01 18:54:25 +00:00
Matthias Clasen
61b7337092 Test that comments are handled properly. (#309263, Mikael Magnusson)
2005-07-01  Matthias Clasen  <mclasen@redhat.com>

	* tests/keyfile-test.c (test_comments): Test that comments are
	handled properly.  (#309263, Mikael Magnusson)
2005-07-01 15:56:03 +00:00
Matthias Clasen
d400e5fc4b Bump version 2005-07-01 04:11:48 +00:00
Matthias Clasen
399b0456ce 2.7.1 2005-06-30 21:01:58 +00:00
Matthias Clasen
9c53b470ec Fix portability issues. (#307064, Morten Welinder)
2005-06-30  Matthias Clasen  <mclasen@redhat.com>

	* glib/gstring.c (g_str_hash): Fix portability issues.
	(#307064, Morten Welinder)
2005-06-30 19:50:43 +00:00
Matthias Clasen
b78a0792a4 Apply a patch which may make GLib work on BeOS again. (#309157, Kian
2005-06-30  Matthias Clasen  <mclasen@redhat.com>

	Apply a patch which may make GLib work on BeOS again.
	(#309157, Kian Duffy)

	* glib/gmain.c: Update the BeOS includes.

	* glib/gstdio.c:
	* glib/gutils.c (g_find_program_in_path):
	* glib/gbacktrace.c (g_on_error_stack_trace): Use the UNIX
	implementation on BeOS, as well.

	* configure.in: Don't put glib 1.0 into G_MODULE_LIBS, even
	on BeOS.
2005-06-30 19:43:48 +00:00
Matthias Clasen
b49f56ad86 Updates 2005-06-30 04:17:33 +00:00
Tor Lillqvist
ef48ce636b libtool installs/uninstalls the import library, no need to do it
2005-06-26  Tor Lillqvist  <tml@novell.com>

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

	* glib/gmappedfile.c: Add Win32 implementation.
	(g_mapped_file_free): Don't mention writable shared mappings in
	the doc comment. Free the GMappedFile struct.

	* tests/mapping-test.c (main): No kill() or SIGUSR1 on Win32, use
	a flag file instead to stop the child. Use g_usleep() instead of
	sleep().
2005-06-26 18:04:08 +00:00
Matthias Clasen
748c230205 Add an mmap() wrapper called GMappedFile. (#148218, David Schleef, Behdad
2005-06-24  Matthias Clasen  <mclasen@redhat.com>

	Add an mmap() wrapper called GMappedFile. (#148218,
	David Schleef, Behdad Esfahbod)

	* glib/gmappedfile.[hc]: New files.

	* configure.in: Check for mmap.

	* glib/Makefile.am: Add new files.

	* glib/glib.symbols: Add new functions.

	* glib/glib.h: Include gmappedfile.h

	* tests/mapping-test.c: Tests for GMappedFile.

	* tests/Makefile.am: Add new file.
2005-06-25 03:38:32 +00:00
Matthias Clasen
132e20bcb6 Add --enable-man.
2005-06-24  Matthias Clasen  <mclasen@redhat.com>

	* Makefile.am (DISTCHECK_CONFIGURE_FLAGS): Add --enable-man.
2005-06-24 14:44:50 +00:00
Tor Lillqvist
80d0d5690f glib/Makefile.am gmodule/Makefile.am Current GNU tools do understand the
2005-06-24  Tor Lillqvist  <tml@novell.com>

	* glib/Makefile.am
	* gmodule/Makefile.am
	* gobject/Makefile.am: Current GNU tools do understand the
	PRIVATE keyword.

	* glib/gfileutils.c (g_mkdir_with_parents): Return error with
	EINVAL also for empty pathnames.
	(g_build_pathname_va): Fix typo.
2005-06-24 13:26:45 +00:00
Manish Singh
20c16cd277 g_build_filename_va is only use in the G_OS_WIN32 case, so compile it
Thu Jun 23 15:52:08 2005  Manish Singh  <yosh@gimp.org>

        * glib/gfileutils.c: g_build_filename_va is only use in the G_OS_WIN32
        case, so compile it conditionally.
2005-06-23 22:52:49 +00:00
Matthias Clasen
58f83683e9 Don't leak memory here.
2005-06-23  Matthias Clasen  <mclasen@redhat.com>

	* tests/keyfile-test.c (test_group_remove): Don't leak
	memory here.

	* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
	leak output_path.  (#308546, Kjartan Maraas)
2005-06-23 16:28:55 +00:00
Matthias Clasen
f3a61fe4a0 Don't leak output_path. (#308546, Kjartan Maraas)
2005-06-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/gkeyfile.c (g_key_file_load_from_data_dirs): Don't
	leak output_path.  (#308546, Kjartan Maraas)
2005-06-23 16:13:33 +00:00
Matthias Clasen
a6312099c7 Add some language-binding friendly variants 2005-06-23 05:50:53 +00:00
Tor Lillqvist
b8c119f901 glib/gfileutils.c glib/gfileutils.h glib/glib.symbols Rename g_makepath()
2005-06-22  Tor Lillqvist  <tml@novell.com>

	* glib/gfileutils.c
	* glib/gfileutils.h
	* glib/glib.symbols
	* tests/testglib.c: Rename g_makepath() to g_mkdir_with_parents().
2005-06-22 18:55:33 +00:00
Matthias Clasen
f8411a5b97 Properly store changes for arrays. (#308528, Roger Leigh)
2005-06-22  Matthias Clasen  <mclasen@redhat.com>

	* glib/goption.c (parse_arg): Properly store changes for arrays.  (#308528,
	Roger Leigh)
2005-06-22 17:09:31 +00:00