Commit Graph

148 Commits

Author SHA1 Message Date
Matthias Clasen
caecf2dda0 Add a check for broken poll on Mac OS X.
2006-12-12  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Add a check for broken poll on Mac OS X.

        * glib/gmain.c: Use poll emulation on OS X.  (#302672, Toby Peterson,
        patch by Dave Vasilevsky)
2006-12-12 20:04:45 +00:00
Matthias Clasen
3080ebdaa8 Fix typos in doc comments. (#358421, Tom Tromey)
2006-10-01  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c: Fix typos in doc comments.
	(#358421, Tom Tromey)
2006-10-01 05:35:29 +00:00
Matthias Clasen
f8c1c1f9e0 Add functions for approximate timeouts 2006-09-10 05:44:46 +00:00
Matthias Clasen
58ea1db43e Add Since tags. Fix Since tag. (#351583, Brian Cameron)
2006-08-15  Matthias Clasen  <mclasen@redhat.com>

        * glib/gbookmarkfile.c (g_bookmark_file_get_groups):
        * glib/gmain.c (g_source_is_destroyed): Add Since tags.
        * glib/gkeyfile.c (g_key_file_get_double_list): Fix
        Since tag.  (#351583, Brian Cameron)
2006-08-16 03:33:57 +00:00
Matthias Clasen
0c26468057 2.11.2 2006-06-05 17:34:53 +00:00
Matthias Clasen
03c90584b8 Don't leak the dispatch struct. (#321886)
2006-06-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c (get_dispatch): Don't leak the
	dispatch struct.  (#321886)
2006-06-05 15:02:51 +00:00
Matthias Clasen
a74af928cf fixups 2006-06-02 02:55:50 +00:00
Matthias Clasen
89a803beb4 More additions 2006-06-02 02:50:38 +00:00
Matthias Clasen
bef319723b Add two new functions, g_source_set_funcs and g_source_is_destroyed, that
2006-06-01  Matthias Clasen  <mclasen@redhat.com>

	* glib/glib.symbols:
	* glib/gmain.h:
	* glib/gmain.c: Add two new functions,
	g_source_set_funcs and g_source_is_destroyed,
	that will be necessary to solve thread-safety
	issues with idles in GTK+.  (#321886, Chris Wilson)
2006-06-02 02:36:30 +00:00
Sebastian Wilhelmi
e4f8f3b95c Renamed to glib/gthreadprivate.h and moved system thread identifier
2006-05-09  Sebastian Wilhelmi  <wilhelmi@google.com>

	* glib/gthreadinit.h: Renamed to glib/gthreadprivate.h and moved
	system thread identifier comparision and assignment macros from
	glib/gthread.c to glib/gthreadprivate.h.

	* glib/Makefile.am, glib/gatomic.c, glib/gconvert.c, glib/gmain.c,
	glib/gmem.c, glib/gmessages.c, glib/grand.c, glib/gslice.c,
	glib/gthread.c, glib/gutils.c, gthread/gthread-impl.c: Use
	glib/gthreadprivate.h instead of glib/gthreadinit.h.

	* gthread/gthread-impl.c: Use GSystemThread instead of GThread for
	owner determination. This fixes #311043 and is mostly modeled
	after the patch from jylefort@FreeBSD.org.
2006-05-10 00:44:50 +00:00
Matthias Clasen
d0ee63840c use standard_calloc to allocate the profile_data. (#335209, Chris Wilson)
2006-03-20  Matthias Clasen  <mclasen@redhat.com>

        * glib/gmem.c (profiler_log): use standard_calloc to allocate
        the profile_data.  (#335209, Chris Wilson)

        * glib/gmain.c (g_main_context_unref): Avoid a deadlock.
        (#335207, Chris Wilson)

        Minor optimizations (#335216, Chris Wilson):

        * glib/gasyncqueue.c (g_async_queue_pop_intern_unlocked): Use
        g_queue_peek_tail_link instead of g_queue_peek_tail.

        * glib/glist.c:
        * glib/gslist.c: Avoid some memset calls.
2006-03-20 18:43:32 +00:00
Matthias Clasen
90bd00b055 Clarify the documentation of source ids a bit. (#325874, Dan Williams)
2006-01-05  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c: Clarify the documentation of source ids
	a bit.  (#325874, Dan Williams)
2006-01-05 21:07:55 +00:00
Matthias Clasen
796aa7e06e Small fixes 2006-01-03 12:01:05 +00:00
Michael Meeks
d2555b65ee new method to determine if the current thread is the owner of the context.
2005-12-20  Michael Meeks  <michael.meeks@novell.com>

	* glib/gmain.c (g_main_context_is_owner): new method
	to determine if the current thread is the owner of the
	context.
2006-01-03 10:24:07 +00:00
Tim Janik
6ed79b115c implement chain walking for arbitrary ->next pointer offsets in
Mon Dec  5 15:53:20 2005  Tim Janik  <timj@imendio.com>

        * glib/gslice.c: implement chain walking for arbitrary ->next pointer
        offsets in g_slice_free_chain_with_offset() based on a patch by behdad
        in bug 323178. moved time consuming logic from g_slice_free() out of
        the inner loop, so g_slice_free_chain_with_offset() provides a real
        performance benefit over g_slice_free1() now.

        * glib/gslice.h: renamed g_slice_free_chain() to
        g_slice_free_chain_with_offset(). implemented g_slice_free_chain() as
        a type-safe macro as suggested in bug 323178.
        simplified the macro implementation of g_slice_free() and implemented
        it in a type safe manner for all compliers as suggested by Morten
        Welinder <mortenw@gnome.org>.

        * glib/gmain.c:
        * glib/glist.c:
        * glib/gslist.c:
        * glib/glib.symbols: s/g_slice_free_chain/g_slice_free_chain_with_offset/
2005-12-05 15:01:27 +00:00
Matthias Clasen
6d763bd97c Don't call cb_funcs->unref while holding the context lock. (#320886, Andy
2005-11-07  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c (g_main_dispatch): Don't call cb_funcs->unref
	while holding the context lock.  (#320886, Andy Wingo)
2005-11-07 20:15:48 +00:00
Matthias Clasen
229206165e Expand the docs. (#320466, Steffen Gutmann)
2005-11-04  Matthias Clasen  <mclasen@redhat.com>

        * glib/gmain.c (g_child_watch_source_new): Expand
        the docs.  (#320466, Steffen Gutmann)
2005-11-04 20:33:34 +00:00
Tim Janik
0cba1b531d prepared deprecation of GMemChunk and GAllocator. added g_slice_*() API to
Tue Nov  1 16:24:20 2005  Tim Janik  <timj@imendio.com>

        * glib/gmem.[hc]: prepared deprecation of GMemChunk and GAllocator.
        added g_slice_*() API to allocate and cache small bits of memory.
        an actuall allocator implementation for g_slice_*() is still pending.

        * glib/gthread.[hc]: changes from a patch by Matthias Clasen.
        changed GRealThread list to use in-structure *next; fields instead
        of GSList, in order for thread iteration to not depenend on g_slice_*()
        indirectly.
        _g_thread_mem_private_get():
        _g_thread_mem_private_set(): added accessors for private memory,
        needed because the ordinary GPrivate implementation relies on GArray
        and GSList and therefore indirectly on working g_slice_*() allocations.

        * glib/gthread.[hc]:
        g_thread_foreach(): new public API function to loop over all existing threads.

        * glib/gdataset.c:
        * glib/gstring.c:
        * glib/gcache.c:
        * glib/garray.c:
        * glib/gqueue.c:
        * glib/gslist.c:
        * glib/glist.c:
        * glib/ghash.c:
        * glib/gtree.c:
        * glib/ghook.c:
        * glib/gmain.c:
        * glib/gnode.c:
        removed GAllocator and free list usages and accompanying locks.
        use g_slice_*() API to allocate and cache small bits of memory.

        * glib/ghook.h: removed GMemChunk field from public API.

        * glib/gslist.h:
        * glib/glist.h: deprecate allocator API, provide _free1() for consistency.

        * glib/gnode.h: deprecate allocator API.

        * glib/gmain.c: reordered GPollRec fields so g_slice_free_chain() can
        be used for poll rec lists.

        * glib/grel.c: removed mem chunk usage, and allocated tuples via g_slice_*().
        g_relation_destroy(): free all tuples from the all_tuples hash table,
        this effectively maintains the life time track keeping of tuples.
        g_relation_delete_tuple(): free tuples which are removed from the
        all_tuples hash table. this fixes a temporary leak that was present
        in the memchunk code until the destruction of the relation.
2005-11-01 18:10:31 +00:00
Kjartan Maraas
2d3fff85d7 Remove some dead code. Closes bug #315278.
2005-09-11  Kjartan Maraas  <kmaraas@gnome.org>

	* glib/gmain.c: (g_child_watch_prepare), (g_child_watch_check),
	(child_watch_helper_thread): Remove some dead code. Closes
	bug #315278.
2005-09-11 15:20:52 +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
0914ea84e3 Add a note regarding waitpid(-1).
2005-04-01  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c (g_child_watch_source_new): Add a note regarding
	waitpid(-1).
	(g_child_watch_source_init_multi_threaded):
	(g_child_watch_source_init_single): Don't use SA_RESTART,
	since it causes problems on at least one platform. (#168352)
2005-04-01 21:40:43 +00:00
Tor Lillqvist
8ced6d2478 [Win32] Use GetSystemTimeAsFileTime() instead of time() and
2005-03-29  Tor Lillqvist  <tml@novell.com>

	* glib/gmain.c (g_get_current_time): [Win32] Use
	GetSystemTimeAsFileTime() instead of time() and
	GetTickCount(). Much simpler.
2005-03-29 08:24:48 +00:00
Tor Lillqvist
52013430a4 If the event fired, assign f->revents=f->events. We can't know whether the
2005-03-29  Tor Lillqvist  <tml@novell.com>

	* glib/gmain.c (g_poll): If the event fired, assign
	f->revents=f->events. We can't know whether the upper layer using
	the event actually is readable, writeable or what, so say that all
	the conditions hold. Remove the ResetEvent() call that has been
	ifdeffed out anyway for a long time. Remove an "#ifdef 1" and
	#endif pair of lines, that code is not optional.
2005-03-29 08:00:53 +00:00
Matthias Clasen
608a31b98e Make PLT-reduction work with gcc4, and don't include everything in
2005-03-13  Matthias Clasen  <mclasen@redhat.com>

	Make PLT-reduction work with gcc4, and don't include
	everything in galias.h:

	* glib/glib.symbols: Group symbols by header and source file.
	* glib/makegalias.pl: Protect definitions by the same
	preprocessor symbols used to guard the headers. Move
	the alias declarations to a separate file which is
	produced when calling makegalias.pl -def
	* glib/Makefile.am (galiasdef.c): Add a rule to generate this
	file.
	* glib/*.c: Include galias.h after the other GLib headers,
	include galiasdef.c at the bottom.
2005-03-14 04:26:57 +00:00
Manish Singh
f026692d2a glib/gasyncqueue.c glib/ghook.c g_return_if_fail -> g_return_val_if_fail
Mon Nov  8 10:45:50 2004  Manish Singh  <yosh@gimp.org>

        * glib/gasyncqueue.c
        * glib/ghook.c
        * glib/giochannel.c: g_return_if_fail -> g_return_val_if_fail

        * glib/gmain.c: Ditto, plus also make g_main_context_ref() actually
        return the passed in pointer.
2004-11-08 18:49:35 +00:00
Matthias Clasen
c83e52605f Make g_io_channel_ref(), g_main_context_ref(), g_hook_ref(),
2004-11-08  Matthias Clasen  <mclasen@redhat.com>

	* glib/gasyncqueue.[hc]:
	* glib/ghook.[hc]:
	* glib/gmain.[hc]:
	* glib/giochannel.[hc]: Make g_io_channel_ref(),
	g_main_context_ref(), g_hook_ref(), g_async_queue_ref()
	return the passed in pointer. (#151663, Manish Singh)
2004-11-08 18:26:56 +00:00
Matthias Clasen
0631238743 Initialize child_watch_count to 1, so that we don't miss the very first
2004-11-08  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c: Initialize child_watch_count to 1, so
	that we don't miss the very first child if it exits
	before we set up the child watch. In that case we had
	previously source->count == child_watch_count == 0,
	causing g_child_watch_check() to skip the waitpid()
	call.  (#154827, Gustavo Carneiro)

	* glib/gmain.c (g_child_watch_source_init_single)
	(g_child_watch_source_init_multi_threaded): Use sigaction()
	instead of signal().  (#136867, Jonas Jonsson, patch by
	Archana Shah)
2004-11-08 15:34:26 +00:00
Matthias Clasen
2e7514d052 Apply a patch to fix sparse warnings. (#154696, Kjartan Maraas)
2004-10-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/gasyncqueue.c, glib/gatomic.c, glib/gdate.c,
	glib/giochannel.c, glib/gmain.c, glib/gspawn.c,
	glib/libcharset/localcharset.c: Apply a patch to fix
	sparse warnings. (#154696, Kjartan Maraas)
2004-10-24 01:37:42 +00:00
Matthias Clasen
4bc720a4a4 Document that GLib supports only a single callback per pid. (#154828,
2004-10-08  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c (g_child_watch_add_full):
	* glib/gmain.c (g_child_watch_add): Document that GLib supports only
	a single callback per pid. (#154828, Gustavo Carneiro)
2004-10-08 14:20:56 +00:00
Matthias Clasen
dafdffd751 Implement the same PLT reduction technique used in GTK+:
Thu Sep 16 02:03:15 2004  Matthias Clasen  <maclas@gmx.de>

	Implement the same PLT reduction technique used in GTK+:
2004-09-16 06:05:53 +00:00
Matthias Clasen
185c1de577 Merge from 2.4:
2004-05-10  Matthias Clasen  <mclasen@redhat.com>

	Merge from 2.4:

	* glib/gmain.c (block_source, unblock_source): Make these
	static.  (#142230, Morten Welinder)
2004-05-10 19:21:28 +00:00
Matthias Clasen
cbfb32bcff Only set time_is_current to FALSE if context->timeout is not zero.
2004-04-22  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c (g_main_context_query): Only set time_is_current to
	FALSE if context->timeout is not zero.  (#137795, Christian Krause)
2004-04-22 14:32:58 +00:00
Tor Lillqvist
9b4080611a glib/giowin32.c glib/gmain.c glib/gstrfuncs.c Decorating variable
2004-04-10  Tor Lillqvist  <tml@iki.fi>

	* glib/giowin32.c
	* glib/gmain.c
	* glib/gstrfuncs.c
	* glib/gthread.c: Decorating variable definitions with
	__declspec(dllexport) causes problems on Cygwin build, and isn't
	really needed for a native Win32 build with mingw or MSVC, so
	remove. (#138402, Roger Leigh)

	* glib/libcharset/localcharset.c: Use Win32-specific code also on
	Cygwin.
	* tests/uri-test.c: Don't assume that local filenames are in UTF-8
	on Cygwin, either. (#138412, Roger Leigh)
2004-04-10 01:55:57 +00:00
Owen Taylor
9753964fe6 Fix the accidental revert of the fixes from #112222 that happened when the
Fri Mar 19 15:21:09 2004  Owen Taylor  <otaylor@redhat.com>

        * glib/gmain.c: Fix the accidental revert of the
        fixes from #112222 that happened when the GChildWatch
        code was added.
2004-03-19 20:25:03 +00:00
Owen Taylor
d261f3fbfc if _POLL_EMUL_H is defined, undefine HAVE_POLL to prefer our own poll()
Sun Mar 14 12:58:30 2004  Owen Taylor  <otaylor@redhat.com>

        * glib/gmain.c: if _POLL_EMUL_H is defined, undefine
        HAVE_POLL to prefer our own poll() emulation to the
        lame OS/X one. (#136956, Manish Singh)
2004-03-14 18:02:37 +00:00
Matthias Clasen
0f789811be Remove an extra semicolon. Spotted by Kjartan Maraas.
Thu Mar 11 02:05:13 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gmain.c (g_main_depth): Remove an extra semicolon.
	Spotted by Kjartan Maraas.
2004-03-11 01:03:12 +00:00
Sebastian Wilhelmi
c40b15fc6b Use the atomic integer operations for GMainContext and GMainLoop reference
2004-03-04  Sebastian Wilhelmi  <seppi@seppi.de>

	* glib/gmain.c: Use the atomic integer operations for GMainContext
	and GMainLoop reference counting.

	* glib/gmain.c: Hold the main_context_list lock, when iterating
	the list. Only call g_main_context_wakeup for positive reference
	count.
2004-03-04 10:12:55 +00:00
Owen Taylor
109ebb109a === Released 2.3.5 ===
Mon Mar  1 16:49:51 2004  Owen Taylor  <otaylor@redhat.com>

        * === Released 2.3.5 ===

        * configure.in: Version 2.3.5, interface ago 0.

        * NEWS: Some further updates.
2004-03-02 00:05:36 +00:00
Owen Taylor
44ef900675 Don't call waitpid() on a source that has already exited.
Mon Mar  1 15:49:09 2004  Owen Taylor  <otaylor@redhat.com>

        * glib/gmain.c (check_for_child_exited): Don't
        call waitpid() on a source that has already exited.

        * glib/gmain.c (g_child_watch_check): Return TRUE
        only if the child actually exited.
2004-03-01 20:56:47 +00:00
Owen Taylor
38cbfaeb7a Patch from J. Ali Harlow
Mon Mar  1 15:39:57 2004  Owen Taylor  <otaylor@redhat.com>

       Patch from J. Ali Harlow

        * configure.in: Use void * not HANDLE for GPid on win32.

        * glib/gspawn.[ch] glib/gspawn-win32.[ch] glib/glib.def:
        Add g_spawn_close_pid().

        * glib/gspawn.[ch]: Make g_spawn functions take
        GPid * instead if int * (GPid == int on unix, will
        produce compile warnings until fixed on Win32.)

        * tests/child-test.c: Make the test a little more
        inappropriately verbose.

        * glib/gmain.c: Add some documentation warnings about
        not closing @pid while the source is active.
2004-03-01 20:47:49 +00:00
Owen Taylor
3e8b3a13f5 Clarify doc comment.
Mon Mar  1 09:17:32 2004  Owen Taylor  <otaylor@redhat.com>

        * glib/gmain.c (g_main_depth): Clarify doc comment.
2004-03-01 14:20:30 +00:00
Owen Taylor
e1c15eb0d1 Fix leftover references to g_main_context_depth() in docs.
Sun Feb 29 21:42:47 2004  Owen Taylor  <otaylor@redhat.com>

        * glib/gmain.c: Fix leftover references to
        g_main_context_depth() in docs.
2004-03-01 02:45:15 +00:00
Owen Taylor
0875017ad1 Add g_main_depth() (Request from Tim Janik and Stefan Westerfeld)
Sun Feb 29 21:34:34 2004  Owen Taylor  <otaylor@redhat.com>

        * glib/gmain.[ch]: Add g_main_depth() (Request from
        Tim Janik and Stefan Westerfeld)
2004-03-01 02:41:09 +00:00
Hans Breuer
4d470362b2 updated externals, including those from bug #135386
2003-02-28  Hans Breuer  <hans@breuer.org>

	* glib/glib.def : updated externals, including those
	from bug #135386

	* glib/makefile.msc.in : build gatomic.c

	* glibconfig.h.win32.in : removed duplicate definition
	of G_MAXSIZE, typedef void* GPid instead of int

	* tests/child-test.c  glib/gmain.c :
	applied patch from J. Ali Harlow <ali@juiblex.co.uk> to fix
	g_child_watch implementation on win32, bug #50296
2004-02-28 13:03:55 +00:00
Hans Breuer
fc9afe0d21 added g_hash_table_find and a bunch of g_queue_*
2003-02-26 Hans Breuer  <hans@breuer.org>

	* glib/glib.def : added g_hash_table_find and a
	bunch of g_queue_*

	* glib/gmain.c : make it compile on win32,
	child_wake_up_pipe replaced by semaphore like it is done
	for the other wake_up_pipe

	* config.h.win32.in : added HAVE_INT64_AND_I64
	* glibconfig.h.win32.in : G_MAXSIZE .. G_M??INT64,
	and typedef for GPid

	* test/env-test.c : don't let the local log function
	collide in namespace with standard C
2004-02-25 23:48:22 +00:00
Matthias Clasen
e906108048 Include signal.h for SIGCHLD. (#134622, Damien Carbery)
Wed Feb 18 23:57:42 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gmain.c: Include signal.h for SIGCHLD.  (#134622, Damien
	Carbery)
2004-02-18 22:55:15 +00:00
Sebastian Wilhelmi
f18db7d2d4 Set context->wake_up_pipe only for G_THREADS_ENABLED.
2004-02-18  Sebastian Wilhelmi  <seppi@seppi.de>

	* glib/gmain.c (g_main_context_new): Set context->wake_up_pipe
	only for G_THREADS_ENABLED.
2004-02-18 09:14:17 +00:00
Matthias Clasen
540d02ba8b Wrap waitpid() as a GSource. This is a partial implementation of the "Unix
Sat Feb 14 01:21:34 2004  Matthias Clasen  <maclas@gmx.de>

	* glib/gmain.h:
	* glib/gmain.c (g_child_watch_source_new):
	* glib/gmain.c (g_child_watch_add):
	* glib/gmain.c (g_child_watch_add_full): Wrap waitpid() as a
	GSource. This is a partial implementation of the "Unix signal
	source".  (#50296, Jonathan R. Blandford)

	* configure.in: Add the necessary configury to typedef GPid
	appropriately.

	* tests/Makefile.am:
	* tests/child-test.c: Test child_watch sources.
2004-02-14 00:23:36 +00:00
Owen Taylor
3f1a49ea41 Set the return value from the result of g_main_context_check() (after we
Sat Nov  1 08:45:38 2003  Owen Taylor  <otaylor@redhat.com>

        * glib/gmain.c (g_main_context_iterate): Set the
        return value from the result of g_main_context_check()
        (after we poll) rather than g_main_context_prepare.
        (#121675, Padraig O'Briain)
2003-11-01 13:57:48 +00:00
Owen Taylor
2afc40f3a6 When DISABLE_MEM_POOLS is set, loop through and free the poll records
Mon Aug 25 12:17:20 2003  Owen Taylor  <otaylor@redhat.com>

        * glib/gmain.c (g_main_context_unref_and_unlock):
        When DISABLE_MEM_POOLS is set, loop through and free
        the poll records explicitely, since g_mem_chunk_destroy()
        won't do it. (#118121, Morten Welinder)
2003-08-25 16:20:41 +00:00