172 Commits

Author SHA1 Message Date
Matthias Clasen
4c78992dbf Don't leak the pipes to child processes. Patch by Thiago Macieira.
* glib/gmain.c (g_main_context_init_pipe): Don't leak the
        pipes to child processes. Patch by Thiago Macieira.


svn path=/trunk/; revision=7037
2008-06-13 14:11:03 +00:00
Tor Lillqvist
a689811a41 glib/gmain.c Clarify what a "child pid" is in the doc comments.
2008-06-11  Tor Lillqvist  <tml@novell.com>

	* glib/gmain.c
	* glib/gspawn.c: Clarify what a "child pid" is in the doc
	comments.


svn path=/trunk/; revision=6995
2008-06-11 06:57:22 +00:00
Tor Lillqvist
2ded70ee94 Improve debugging printouts. When G_MAIN_POLL_DEBUG is defined, we check
2008-05-17  Tor Lillqvist  <tml@novell.com>

	* glib/gmain.c: Improve debugging printouts. When
	G_MAIN_POLL_DEBUG is defined, we check for an environment variable
	of the same name to decide whether to print out debugging
	information or not. G_MAIN_POLL_DEBUG is always defined on Windows
	as there is more often a need to debug this stuff there. On Unix
	the definition has to be uncommented (or done on the compile
	command line).


svn path=/trunk/; revision=6897
2008-05-17 02:25:59 +00:00
13:24:13 Tim Janik
02e2b95393 renamed GMainDispatch.dispatching_sources to be more descriptive and
2008-05-02 13:24:13  Tim Janik  <timj@imendio.com>

        * glib/gmain.c: renamed GMainDispatch.dispatching_sources to be more
        descriptive and distinguishable within the source file.


svn path=/trunk/; revision=6874
2008-05-02 11:22:10 +00:00
Matthias Clasen
ccd3ec90bf Make the fix for bug 448943 work.
2008-04-04  Matthias Clasen  <mclasen@redhat.com>

        * glib/gmain.c: Make the fix for bug 448943 work.



svn path=/trunk/; revision=6826
2008-04-04 13:06:14 +00:00
Matthias Clasen
7f82bb3196 Bug 448943 – g_timeout_add_seconds() problems
2008-04-03  Matthias Clasen  <mclasen@redhat.com>

        Bug 448943 – g_timeout_add_seconds() problems

        * glib/gmain.c (g_timeout_set_expiration): Prevent expiration
        time going negative. Reported by Cody Russell, analyzed by
        Olivier Crete, patch by Sjoerd Simons.


svn path=/trunk/; revision=6814
2008-04-03 04:51:16 +00:00
Tor Lillqvist
d8fa7b34d2 Improve fix for #525192 below: Use SleepEx() so that the sleep is
2008-03-31  Tor Lillqvist  <tml@novell.com>

	* glib/gmain.c (g_poll): Improve fix for #525192 below: Use
	SleepEx() so that the sleep is alertable. Thanks to John
	Ehresman.


svn path=/trunk/; revision=6794
2008-03-31 18:05:47 +00:00
Tor Lillqvist
3e877f984e Bug 525192 - 100% CPU if run main loop with no IO sources
2008-03-31  Tor Lillqvist  <tml@novell.com>

	Bug 525192 - 100% CPU if run main loop with no IO sources

	* glib/gmain.c (g_poll) [Win32]: Patch by Neil Roberts.


svn path=/trunk/; revision=6787
2008-03-31 07:37:17 +00:00
Tor Lillqvist
d01acfe811 Further patch by Vlad Grecescu: Drop the code path that called
2008-02-26  Tor Lillqvist  <tml@novell.com>

	* glib/gmain.c (g_poll): Further patch by Vlad Grecescu: Drop
	the code path that called WaitMessage(), as WaitMessage()
	doesn't offer any chance for APCs to run. Instead just use the
	code path with MsgWaitForMultipleObjectsEx() even for the
	wait-only-for-messages case. (#517484)


svn path=/trunk/; revision=6597
2008-02-26 17:26:28 +00:00
Tor Lillqvist
6eb2b42715 Use alertable wait functions so that I/O completion routines or user-mode
2008-02-24  Tor Lillqvist  <tml@novell.com>

	* glib/gmain.c (g_poll) [Win32]: Use alertable wait functions so
	that I/O completion routines or user-mode Asynchronous Procedure
	Calls can be run. (#517484, Vlad Grecescu)


svn path=/trunk/; revision=6571
2008-02-24 01:46:42 +00:00
Matthias Clasen
d2f111fca7 Require gtk-doc 1.8.
2007-11-25  Matthias Clasen  <mclasen@redhat.com>

        * configure.in: Require gtk-doc 1.8.

        * glib/gasyncqueue.c:
        * glib/gdate.c:
        * glib/gfileutils.c:
        * glib/gmain.c:
        * glib/gmarkup.c:
        * glib/gregex.c:
        * glib/gtestutils.c:
        * glib/gutils.c: Use gtk-doc abbreviations for
        examples in doc comments.


svn path=/trunk/; revision=5933
2007-11-25 06:05:06 +00:00
Matthias Clasen
4abb6c13be Improve the docs. (#491974, Areg Beketovski)
2007-11-09  Matthias Clasen <mclasen@redhat.com>

        * glib/gmain.c (g_main_context_iteration): Improve the
        docs.  (#491974, Areg Beketovski)



svn path=/trunk/; revision=5850
2007-11-10 00:23:16 +00:00
Matthias Clasen
e8900bc3b7 More docs fixes
svn path=/trunk/; revision=5842
2007-11-09 03:33:35 +00:00
Matthias Clasen
58178261fd More doc fixes
svn path=/trunk/; revision=5840
2007-11-09 03:29:51 +00:00
Matthias Clasen
ed7e9b2459 Expand the docs a bit. (#317775, Søren Sandmann)
2007-11-08  Matthias Clasen <mclasen@redhat.com>

        * glib/gmain.c (g_main_loop_quit): Expand the docs
        a bit.  (#317775, Søren Sandmann)



svn path=/trunk/; revision=5833
2007-11-09 02:46:41 +00:00
Matthias Clasen
1c93d867fc Don't leak the condvar. (#479724, Areg Beketovski)
2007-11-07  Matthias Clasen <mclasen@redhat.com>

        * glib/gmain.c (g_main_context_unref): Don't leak the
        condvar.  (#479724, Areg Beketovski)


svn path=/trunk/; revision=5818
2007-11-08 03:53:41 +00:00
Behdad Esfahbod
9df1f4fcc7 Fix warnings from sparse. (#487491, Kjartan Maraas)
2007-10-21  Behdad Esfahbod  <behdad@gnome.org>

        * glib/gdate.c (g_date_strftime):
        * glib/gmain.c (g_main_context_check):
        * glib/gregex.c (g_match_info_fetch_all), (g_regex_split_full):
        * glib/gthread.c (g_once_init_enter_impl), (g_once_init_leave):
        * glib/gthread.h:
        * glib/gutf8.c (g_utf16_to_utf8), (g_utf16_to_ucs4):
        * tests/errorcheck-mutex-test.c (lock_locked_mutex),
        (trylock_locked_mutex), (unlock_unlocked_mutex),
        (free_locked_mutex), (wait_on_unlocked_mutex),
        (wait_on_otherwise_locked_mutex), (timed_wait_on_unlocked_mutex),
        (timed_wait_on_otherwise_locked_mutex):
        Fix warnings from sparse. (#487491, Kjartan Maraas)


svn path=/trunk/; revision=5792
2007-10-21 17:01:29 +00:00
Matthias Clasen
34a9878985 Fix a doc formatting problem
svn path=/trunk/; revision=5766
2007-09-16 17:30:57 +00:00
Matthias Clasen
23cb7803c2 Coding style cleanups
svn path=/trunk/; revision=5651
2007-07-22 00:34:21 +00:00
Emmanuele Bassi
00ab83b8e8 Add full variant to the approximate timeout functiont
The g_timeout_add_seconds() API lacks a _full() counterpart, allowing the
setting of a destroy notification function to be invoked when the timeout
source is removed.

This patch adds g_timeout_add_seconds_full() to the public API and
reimplements g_timeout_add_seconds() as a call to g_timeout_add_seconds_full().

svn path=/trunk/; revision=5575
2007-06-18 16:55:50 +00:00
Matthias Clasen
b2d6494a5e Fix typos
svn path=/trunk/; revision=5558
2007-06-14 13:52:01 +00:00
Chris Wilson
af8671792d Replace a g_slist_prepend/g_slist_remove pair with an on-stack link and
2007-03-15  Chris Wilson  <chris@chris-wilson.co.uk>

	* glib/gmain.c (g_main_dispatch): Replace a
	g_slist_prepend/g_slist_remove pair with an on-stack link
	and open coding. (#416094)


svn path=/trunk/; revision=5407
2007-03-15 08:47:28 +00:00
Matthias Clasen
2d7fa2dd18 Readd a return which was removed as dead code a while ago. icc may
* glib/gmain.c (child_watch_helper_thread): Readd a
        return which was removed as dead code a while ago.
        icc may consider it dead, but gcc doesn't like non-void
        functions without a return...  (#354707)
2006-12-19 02:49:39 +00:00
Matthias Clasen
dc78f9b202 Improve the docs. (#345569, Tim-Philipp Müller)
2006-12-14  Matthias Clasen  <mclasen@redhat.com>

	* glib/gmain.c (g_child_watch_add_full): Improve the docs.
	(#345569, Tim-Philipp Müller)
2006-12-15 03:42:24 +00:00
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