Commit Graph

71 Commits

Author SHA1 Message Date
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
Matthias Clasen
be5d72cba0 Add new functions 2006-01-03 14:52:34 +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
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
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
Tor Lillqvist
1cf610e216 glib/giochannel.h Remove bogus (Win32-only) declaration of
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.
2003-06-05 22:18:27 +00:00
Soeren Sandmann
d201974f56 Trivial s/foo/foo_/ fixes to make <glib.h> includable with -Wshadow
Fri Nov  8 19:44:20 2002  Soeren Sandmann  <sandmann@daimi.au.dk>

	* docs/reference/glib/tmpl/arrays.sgml:
	* docs/reference/glib/tmpl/arrays_byte.sgml:
	* docs/reference/glib/tmpl/arrays_pointer.sgml:
	* docs/reference/glib/tmpl/date.sgml:
	* docs/reference/glib/tmpl/linked_lists_double.sgml:
	* docs/reference/glib/tmpl/linked_lists_single.sgml:
	* docs/reference/glib/tmpl/main.sgml:
	* docs/reference/glib/tmpl/queue.sgml:
	* docs/reference/glib/tmpl/random_numbers.sgml:
	* docs/reference/glib/tmpl/relations.sgml:
	* docs/reference/glib/tmpl/scanner.sgml:
	* docs/reference/gobject/tmpl/gtype.sgml:
	* docs/reference/gobject/tmpl/value_arrays.sgml glib/garray.h:
	* glib/gdate.h glib/giochannel.h glib/glist.h glib/gmain.c:
	* glib/gmain.h glib/gqueue.c glib/gqueue.h glib/grand.c glib/grand.h:
	* glib/grel.h glib/gslist.h glib/gtimer.h gobject/gvaluearray.h:

	Trivial s/foo/foo_/ fixes to make <glib.h> includable with
	-Wshadow without warnings (#91680)
2002-11-08 18:47:56 +00:00
Owen Taylor
67ea9743a7 Add a little bit of padding.
Sat Feb 23 14:54:13 2002  Owen Taylor  <otaylor@redhat.com>

        * glib/giochannel.h (struct _GIOChannel): Add a little bit
        of padding.

        * glib/gmain.h (struct _GSource): Add a little bit of padding.
2002-02-23 20:08:45 +00:00
Owen Taylor
13852a10d4 Rename (private) GSource.id and id parameter to
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)
2001-11-28 23:51:51 +00:00
Owen Taylor
b4c3107c7a Add closure_marshal/closure_callback fields to GSourceFuncs for use by
Mon Aug 27 14:56:12 2001  Owen Taylor  <otaylor@redhat.com>

	* glib/gmain.h: Add closure_marshal/closure_callback
	fields to GSourceFuncs for use by g_source_set_closure().

	* glib/gmain.c glib/giounix.c glib/giowin32.c
	  glib/gmain.h: Export the SourceFuncs vtables so GObject
	can use them to figure out closure callbacks/marshallers
	for the default source types.

Mon Aug 27 14:55:27 2001  Owen Taylor  <otaylor@redhat.com>

	* gsourceclosure.[ch] (g_source_set_closure): Implement.

	* gsourceclosure.[ch]: Add GType's for GIOChannel, GIOCondition.
2001-09-03 22:12:51 +00:00
Owen Taylor
b37e7bbb53 Rename GSourceFuncs::destroy to GSourceFuncs::finalize. (#56858)
Sat Jun 30 16:03:16 2001  Owen Taylor  <otaylor@redhat.com>

	* glib/giowin32.c glib/giounix.c glib/gmain.[ch]:
	Rename GSourceFuncs::destroy to GSourceFuncs::finalize.
	(#56858)
2001-06-30 20:06:16 +00:00
Owen Taylor
8951f96c50 Make some changes to the way that GMainContext works:
Sat Jun 30 15:49:10 2001  Owen Taylor  <otaylor@redhat.com>

	* glib/gmain.[ch]: (Mostly patch from Sebastian Wilhemi)
	Make some changes to the way that GMainContext works:

	 - a GMainContext is no longer associated with a single
	   thread, but any thread can acquire ownership
	   of thread and iterate.

	 - There is a facility g_main_context_wait() for
	   non-owner-threads to wait either for ownership
	   or for a condition to be broadcast.

	 - For efficiency, GMainLoop just piggybacks of
	   of the loops mutex / condition instead of
	   having a separate mutex/condition for each
	   GMainLoop.

	* glib/gthread.[ch]: Remove hacks to store the thread's
	GMainContext in the GThread structures, since we
	no longer have the GMainContext <=> GThread correspondence.

        * glib/gmain.[ch]: Make g_main_context_wakeup() public
	so someone could completely duplicate GMainLoop
	with the public API.

	* tests/mainloop-test: Fix up to the new API. Decidedly
	doesn't work at the moment, but that may be the IO
	channel changes, or preexisting locking problems.
2001-06-30 19:56:47 +00:00
Owen Taylor
2fd6b001fb Move glib library into a subdirectory, make all GLib include files include
Tue Jun 26 11:43:46 2001  Owen Taylor  <otaylor@redhat.com>

	* configure.in Makefile.am *.[ch] glib/*.[ch] glib/Makefile.am:
	Move glib library into a subdirectory, make all GLib include
	files include as <glib/glist.h>

	* tests/testglib.c tests/testgdate.c tests/testgdateparser.c
	  tests/timeloop.c tests/timeloop-basic.c: Move all tests into
	the tests/ subdirectory.
2001-06-26 16:01:21 +00:00
Owen Taylor
df2f429cff -DG_DISABLE_DEPRECATED
Mon Mar 26 14:14:53 2001  Owen Taylor  <otaylor@redhat.com>

	* Makefile.am (INCLUDES): -DG_DISABLE_DEPRECATED

	* gmain.h timeloop.c: Surround the cruftiest stuff with
	#ifndef G_DISABLE_DEPRECATED.

	* gcompat.h gdate.h: Move compat defines back to
	gdate.h, surround with #ifndef G_DISABLE_DEPRECATED.
	Remove gcompat.h.
2001-03-26 19:23:17 +00:00
Owen Taylor
3ae4c59e3f Switch GMainLoop to be ref/unref, use to make dropping reference to
Wed Jan  3 14:10:49 2001  Owen Taylor  <otaylor@redhat.com>

	* gmain.[ch]: Switch GMainLoop to be ref/unref, use to
	make dropping reference to running loop safe.
2001-01-03 20:18:40 +00:00
Owen Taylor
70a7a7654e Revert unauthorized changes.
Tue Dec 12 15:18:10 2000  Owen Taylor  <otaylor@redhat.com>

	* gmain.[ch]: Revert unauthorized changes.
2000-12-12 20:23:37 +00:00
Elliot Lee
8f7579774c GMainContext useful in implementing some additional styles of main loop
* gmain.c, gmain.h (g_main_context_new, g_main_context_destroy): GMainContext useful
in implementing some additional styles of main loop usage.  To do this, however, Joe
Hacker needs to be able to create/destroy GMainContext's at will. This is just an
export of existing functionality, rather than new functionality.

They are listed in the "Low level functions for implementing custom main loops"
section of the header file, to avoid confusing people.

* gobject/Makefile.am:
  . You have to 'touch oldest-source-stamp' if you want to avoid having
  the Makefile constantly rebuild itself.
  . Fix marshaller generation rules to work with srcdir != builddir
    (there were issues with trying to run "./glib-genmarshal", etc.)
2000-12-12 19:34:41 +00:00
Owen Taylor
cbd74878d1 Remove pollfds from the context here, not when actually freeing the
Sun Dec 10 10:47:11 2000  Owen Taylor  <otaylor@redhat.com>

	* gmain.c (g_source_destroy_internal): Remove pollfds
	from the context here, not when actually freeing the
	source.

	* gmain.c (g_source_unref_internal): Free source list
	and source, call source->source_funcs->destroy().

	* giochannel.c: Unreference io_channel properly.
2000-12-10 16:02:48 +00:00
Raja R Harinath
dc7d6c2464 Don't put anything after an #endif. Likewise.
* gmain.h: Don't put anything after an #endif.
* gmain.c: Likewise.
2000-12-08 03:39:47 +00:00
Owen Taylor
e2fd4e2bd0 Major change in API for creating sources to handle multiple main loops
Tue Dec  5 12:23:04 2000  Owen Taylor  <otaylor@redhat.com>

        * gmain.[hc]: Major change in API for creating sources
	to handle multiple main loops (GMainContext *).

	GSources are now exposed as GSource * and implemented
	with structure derivation.

	* giochannel.[ch]: Changed vtable for GIOChannel to correspond
	to the new mainloop API, add g_io_channel_create_watch().

	* gtypes.h: Move GTimeVal here.

	* gthread.h: Remove gmain.h include to avoid circularity.

        * giounix.c: Update for new GMain API.

	* giowin32.c: Update for new GMain API. (No check for
	proper compilation or working.)

	* timeloop.c timeloop-basic.c: A benchmarking program for
	the main loop comparing the main loop against a
	hand-written (timeloop-basic.c) variant.

	* tests/mainloop-test.c: New torture test of mainloop.

	* docs/Changes-2.0.txt: Started. Added text about
	changes to GMain.

	* gmain.c (g_main_add_poll_unlocked): Initial fd->revents
	to zero. (#8482, Benjamin Kahn)
2000-12-05 20:45:33 +00:00
Sebastian Wilhelmi
b1d1558747 Split glib.h into many header files mostly according to the resp.
2000-10-12  Sebastian Wilhelmi  <wilhelmi@ira.uka.de>

	* glib.h, galloca.h, garray.h, gasyncqueue.h, gbacktrace.h,
	gcache.h, gcompletion.h, gconvert.h, gdataset.h, gdate.h, ghash.h,
	ghook.h, giochannel.h, glist.h , gmacros.h, gmain.h, gmem.h,
	gmessages.h, gnode.h, gprimes.h, gquark.h, gqueue.h, grand.h,
	grel.h, gscanner.h, gslist.h, gstrfuncs.h, gstring.h, gthread.h,
	gthreadpool.h, gtimer.h, gtree.h, gtypes.h, gutils.h: Split glib.h
	into many header files mostly according to the resp. *.c-files.

	* gmacros.h: Added G_BEGIN_DECLS and G_END_DECLS to mean: 'in case
	of C++: extern "C" { ... }' analogous to glibc __BEGIN_DECLS and
	__END_DECLS.

	* configure.in, gerror.h, gfileutils.h, gshell.h, gspawn.h,
	gunicode.h, : Changed guard-macro names to something more
	consistent.

	* configure.in, *.h: Use G_BEGIN_DECLS and G_END_DECLS.
2000-10-12 11:52:07 +00:00