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-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-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-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)
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.
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-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.
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.
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.
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.
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
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
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.
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)
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-15 Tor Lillqvist <tml@iki.fi>
* glib/gmain.c (g_poll): [Win32] Don't exceed handle array
bounds. Warn if there would be too many handles to wait
for. (WaitForMultipleObjects() has a relatively low limit of 64
handles. The Win32 IO channel code should be fixed not to need to
wait for one handle per file or socket being watched. Later.)
Thu Aug 7 14:15:44 2003 Owen Taylor <otaylor@redhat.com>
* glib/gmain.c (g_idle_source_new): Make the default priority
for idle sources G_PRIORITY_DEFAULT_IDLE as anybody would
expect and document that. (#114461, reported by Andy Wingo)
Wed Jul 9 16:27:26 2003 Manish Singh <yosh@gimp.org>
* glib/gmain.c (g_main_context_unref_and_unlock): check if
context->poll_chunk is set before trying to destroy it. For example,
This can happen if no sources are added to a context before it is
freed.
Thu Jun 5 23:40:31 2003 Owen Taylor <otaylor@redhat.com>
* glib/gmain.c: When dispatching a source that is
!CAN_RECURSE, temporarily remove any file descriptors
that that source has registered from the main loop, to keep
recursive main loops from busy-waiting if input
becomes available on one of those file descriptors.
(#112222, Christian Krause)
* glib/gmain.c (g_source_set_priority): Properly
remove the source from the context's source list
and reinsert it sorted, rather than simply setting
source->next/prev to NULL! (#114274)
2003-06-05 Tor Lillqvist <tml@iki.fi>
* glib/giochannel.h
* glib/gmain.h: Remove bogus (Win32-only) declaration of
g_main_poll_win32_msg_add(). No such function exists.
* glib/gmain.c (g_poll) [Win32]: Use g_win32_error_message() for
better warning messages.
Mon Apr 7 13:40:28 2003 Owen Taylor <otaylor@redhat.com>
* glib/gmain.c (g_main_loop_run): When waiting for
the main loop to be freed up, wait on either
!loop->is_running or got_ownership, not both.
(Caused gtk_dialog_run() not to work in other
threads, reported by Jean-Yves Lefort)
2003-02-14 Sebastian Wilhelmi <seppi@seppi.de>
Fixes for #101264 and #99372:
* glib/gconvert.h, glib/gmain.c, glib/gmem.c, glib/gmessages.c,
glib/grand.c: Include gthreadinit.h and rename the thread
initialization functions a bit and let them start with _, so that
later we can stop exporting them.
* glib/gmem.c, glib/gmessages.c: Move the g_private_new() calls to
new functions. They have to be called after setting
g_threads_got_initialized to TRUE (see #101264).
* glib/gthread.c: Include gthreadinit.h. Renamed g_mutex_init() to
g_thread_init_glib(). Call the thread initialization functions
(which are not allowed to call g_private_new), then set
g_threads_got_initialized to TRUE, then call the other thread
initialization functions (which must not call anything but
g_private_new()).
* glib/gthreadinit.h: New private header to cleanly declare all
thread initialization functions.
* gthread/gthread-impl.c: Include gthreadinit.h. In
g_thread_init() just call g_thread_init_glib(), which in turn calls the
other functions (see #99372).
* glib/Makefile.am: Added gthreadinit.h.
2002-10-27 Tor Lillqvist <tml@iki.fi>
* configure.in (G_MODULE_LDFLAGS): Don't set on Win32, only causes
trouble.
* glib/gmain.c (g_poll): Fix for bug reported by Herman Bloggs
(http://mail.gnome.org/archives/gtk-devel-list/2002-October/msg00101.html)
and others. We waited for events only for GPollFDs whose events
field had G_IO_IN set. We need to wait also for events for
GPollFDs that have just G_IO_OUT set. Non-blocking sockets in the
process of being connect()ed are one such case. Also silence a
couple of gcc warnings.
2002-08-06 Sebastian Wilhelmi <wilhelmi@ira.uka.de>
* glib/gmain.c: Factor out g_main_context_init_pipe from
g_main_context_new to initialize the wakeup pipe of a
context. Call that function from g_main_context_new if threads are
initialized and for all contexts when threads are initialized
in g_main_thread_init. (#86872)
* gthread/gthread-impl.c: Call g_main_thread_init. (#86872)
Thu Jul 25 19:02:53 2002 Owen Taylor <otaylor@redhat.com>
* glib/gmain.c (g_timeout_add): Remove reference
in the docs to @notify parameter. (#87768,
Manuel Clos)
Thu Jun 13 16:12:04 2002 Owen Taylor <otaylor@redhat.com>
* glib/gmain.c (struct _GTimeoutSource): Make
interval unsigned to match g_timeout_source_new().
(#82624, Tim Janik.)
* glib/gmain.c (g_timeout_prepare): Add some
extra gymnastics to avoid signed/unisgned integer
overflows.
2002-02-13 Havoc Pennington <hp@redhat.com>
* glib/gmain.c (g_main_context_check): never dispatch sources of
mixed priority, because while iterating over the dispatch array a
new source with more priority may be added, while a source with
less priority remains in the dispatch array
Wed Feb 6 14:44:18 2002 Owen Taylor <otaylor@redhat.com>
* glib/gmain.c (g_main_context_prepare): Handle
NULL entries (already dispatched) in pending_dispatches array
(pointed out by Manish Singh)
* glib/gshell.c, glib/gspawn.c, glib/gspawn-win32.c, glib/gerror.c,
glib/gfileutils.c, glib/ghash.c, glib/gmain.c, glib/gasyncqueue.c,
glib/gtree.c: Minor markup fixes.
* glib/tmpl/caches.sgml: GCs are cached by GTK, not by GDK.
Wed Nov 28 18:34:22 2001 Owen Taylor <otaylor@redhat.com>
* glib/gmain.[ch]: Rename (private) GSource.id and
id parameter to g_main_context_find_source_by_id()
to avoid problems with Objective C where 'id' is
a keyword. (#65616)