Low-level core library that forms the basis for projects such as GTK+ and GNOME.
Go to file
Tor Lillqvist b965bb5db1 Finally, a new and improved IO Channel and condition watch implementation
2000-07-30  Tor Lillqvist  <tml@iki.fi>

	Finally, a new and improved IO Channel and condition watch
	implementation for Win32. Based on code provided by Craig Setera.

	When watching file descriptors, for which there is no select()
	like functionality on Win32 that would work on all Win32 platforms
	for all types of file descriptors (including anonymous pipes), we
	start a new thread that blocks while trying to read from the file
	descriptor. When the read returns, a Win32 Event is signalled that
	the polling routine eventually notices. Meanwhile, the data being
	read is stored in a circular buffer, from where the IO channel's
	read() method picks it up.

	If the buffer fills up the reading thread has to wait for space
	becoming available. For this another Win32 Event is used. The IO
	Channel's read() method signals this when it has read some data
	out of the buffer.

	The separate reader thread(s), and the circular buffer(s) with
	associated events mean lots of possibilities for fun parallellism
	errors. But it seems to work OK, i.e. GIMP runs.

	* gmain.c: Small changes to the Win32 polling function.
	(g_main_win32_get_poll_func): New function. Perhaps it would be a
	good idea to provide this on all platforms.

	* giowin32.c: The bulk of the new implementation.
	(g_io_channel_win32_wait_for_condition): New function. To be used
	where on Unix one does a select() on the channel's fd, like
	libgimp's gimp_extension_process(). Could be provided on all
	platforms.

	* glib.h: Update documentation for IO Channels on Win32. Remove
	the declarations for the as of now obsolete old functions related
	to IO Channels for pipes with "wakeup" messages.

	* glib.def: Some new functions.

	* tests/gio-test.c: New file, to test GIOChannel and main loop.

	* tests/Makefile.am
	* tests/makefile.mingw.in: Add it.
2000-07-29 20:59:07 +00:00
debian add -b (binary-only; no source packages) flag to dpkg-buildpackage 1998-11-18 05:32:06 +00:00
docs Remove incomplete start of info file - 2000-07-16 03:49:54 +00:00
glib Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
gmodule applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gobject No, don't mark glib_debug_objects for export here, it's handled specially 2000-07-27 05:31:12 +00:00
gthread applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
m4macros Move glib-config to glib-config-2.0 move glib.m4 to glib-2.0.m4 2000-07-14 19:22:54 +00:00
tests Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
.cvsignore .cvsignore updates 2000-03-22 10:02:34 +00:00
acconfig.h applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
acglib.m4 include <stdlib.h> and <stddef.h> if STDC_HEADERS is defined. 2000-07-26 03:18:27 +00:00
acinclude.m4 libtool 1.3.2 (BeOS changes merged) 1999-06-02 18:43:45 +00:00
AUTHORS 18:36. incorporated proposed cleanups from gtk-devel-list. 1999-07-24 18:50:58 +00:00
autogen.sh acinclude.m4 config.guess config.sub ltconfig upgrade to libtool 1.2f 1999-03-20 00:44:22 +00:00
build-dll Fix resource handling, the resource file got left out from the DLL after 2000-07-22 08:38:06 +00:00
ChangeLog Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
ChangeLog.pre-1-2 moved old ChangeLog to ChangeLog.pre-1-2, and started new one. 1999-02-27 00:25:58 +00:00
ChangeLog.pre-2-0 Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
ChangeLog.pre-2-2 Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
ChangeLog.pre-2-4 Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
ChangeLog.pre-2-6 Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
ChangeLog.pre-2-8 Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
ChangeLog.pre-2-10 Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
ChangeLog.pre-2-12 Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
config.guess Test for sched_yield as the native yield function first. Corrected typo 2000-03-22 10:04:29 +00:00
config.h.win32.in Renamed GLIB_SIZEOF_PTHREAD_T to GLIB_SIZEOF_SYSTEM_THREAD to reflect 1999-11-16 10:30:25 +00:00
config.sub Test for sched_yield as the native yield function first. Corrected typo 2000-03-22 10:04:29 +00:00
configure.in added g_strlcat() and g_strlcpy() wrappers, supplied by David Wheeler 2000-07-26 03:51:07 +00:00
COPYING version bump to 1.1.1, binary age 1, interface age 0. updates. updates. 1998-08-04 14:26:27 +00:00
garray.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gasyncqueue.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gbacktrace.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gcache.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gcompletion.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gdataset.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gdate.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gerror.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gerror.h applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
ghash.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
ghook.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
giochannel.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
giounix.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
giowin32.c Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
glib-2.0.m4 Move glib-config to glib-config-2.0 move glib.m4 to glib-2.0.m4 2000-07-14 19:22:54 +00:00
glib-config-2.0.in Move glib-config to glib-config-2.0 move glib.m4 to glib-2.0.m4 2000-07-14 19:22:54 +00:00
glib-object.h define gstring in terms of gchar*. this typedef reflects the type name of 2000-06-24 22:30:10 +00:00
glib.def Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
glib.h Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
glib.rc.in New files, for putting version info in the DLLs on Win32. 2000-02-04 13:57:46 +00:00
glib.spec.in added gobject 2000-05-12 15:23:16 +00:00
glibconfig.h.win32.in Return 0 on error, not NULL. 2000-07-26 15:39:44 +00:00
glist.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gmain.c Finally, a new and improved IO Channel and condition watch implementation 2000-07-29 20:59:07 +00:00
gmem.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gmessages.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gnode.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gprimes.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gqueue.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
grand.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
grel.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gscanner.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gslist.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gstrfuncs.c completed tor's fix to cover both #ifdef branches. 2000-07-27 03:16:15 +00:00
gstring.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gthread.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gthreadpool.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gtimer.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gtree.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gunichartables.h Initial pass at adding unicode support functions. A few things still need 2000-06-21 16:11:21 +00:00
gunicode.h applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gunidecomp.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gunidecomp.h Initial pass at adding unicode support functions. A few things still need 2000-06-21 16:11:21 +00:00
guniprop.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gutf8.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gutils.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
gwin32.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
HACKING new file 1999-01-20 23:06:30 +00:00
INSTALL 18:36. incorporated proposed cleanups from gtk-devel-list. 1999-07-24 18:50:58 +00:00
ltconfig Test for sched_yield as the native yield function first. Corrected typo 2000-03-22 10:04:29 +00:00
ltmain.sh Test for sched_yield as the native yield function first. Corrected typo 2000-03-22 10:04:29 +00:00
MAINTAINERS 18:36. incorporated proposed cleanups from gtk-devel-list. 1999-07-24 18:50:58 +00:00
Makefile.am Include the "build" module in GLib, too, to make it more self-contained. 2000-07-14 22:46:35 +00:00
makefile.mingw.in Include the "build" module in GLib, too, to make it more self-contained. 2000-07-14 22:46:35 +00:00
makefile.msc.in Add new entry points. 2000-06-30 23:39:13 +00:00
NEWS updated 2000-06-29 20:09:36 +00:00
README 18:36. incorporated proposed cleanups from gtk-devel-list. 1999-07-24 18:50:58 +00:00
README.win32 Mention -fnative-struct here, too... 2000-07-22 11:54:19 +00:00
sanity_check 18:36. incorporated proposed cleanups from gtk-devel-list. 1999-07-24 18:50:58 +00:00
testgdate.c fixed SIZEOF_LONG==4 assumption with ENABLE_MEM_CHECK, from Art Haas 2000-05-19 08:18:29 +00:00
testgdateparser.c Two new files. This is kind of ugly code, but I want to go ahead and make 1998-12-02 20:20:35 +00:00
testglib.c applied patch from Andreas Persenius <ndap@swipnet.se> that updates the 2000-07-26 11:02:02 +00:00
TODO.xml <entry size="small" status="90%" target="1.4"> 2000-05-11 04:12:04 +00:00

 *** IMPORTANT *** 

This is a development version of GLib.  You should be using a stable
version, which is available at ftp://ftp.gtk.org/pub/gtk/v1.2/.  This
version is meant for developers of GLib only:

 * You should not base stable software on this version of GLib.
 * GNOME developers should use a stable version of GLib.

Distributions should *NOT* ship a development package of this GLib.
Do not ship the headers and do not ship the glib-config script.  These
things will conflict with the stable 1.2 series.  Package only enough
to satisfy the requirements of some other package.  Package only the
library itself.  Doing otherwise will do no favors to the community.

If you install this version of GLib, we strongly recommend that you
install it in a different prefix than GLib 1.2.  Use --prefix as an
argument to configure to do this.  Otherwise, you will not be able to
do development with GLib 1.2 any longer.

*** You should be using GLib 1.2 instead. ***


General Information
===================

This is GLib version 1.3.1. GLib is a library which includes support
routines for C such as lists, trees, hashes, memory allocation, and
many other things.

The official ftp site is:
  ftp://ftp.gtk.org/pub/gtk

The official web site is:
  http://www.gtk.org/

A mailing list is located at:
  gtk-list@redhat.com

To subscribe: mail -s subscribe gtk-list-request@redhat.com < /dev/null
(Send mail to gtk-list-request@redhat.com with the subject "subscribe")

Installation
============

See the file 'INSTALL'

How to report bugs
==================

To report a bug, send mail either to gtk-list, as mentioned
above, or to gtk-bugs@gtk.org. If you send mail to gtk-list, you
must be subscribed yourself.

In the mail include:

* The version of GLib

* Information about your system. For instance:

   - What operating system and version
   - What version of X
   - For Linux, what version of the C library

  And anything else you think is relevant.

* How to reproduce the bug. 

  If you can reproduce it with the testglib program that is built 
  in the glib/ directory, that will be most convenient.  Otherwise, 
  please include a short test program that exhibits the behavior. 
  As a last resort, you can also provide a pointer to a larger piece 
  of software that can be downloaded.

* If the bug was a crash, the exact text that was printed out
  when the crash occured.

* Further information such as stack traces may be useful, but
  is not necessary.

Patches
=======

Patches can be uploaded to the incoming/ directory on
ftp.gtk.org.  Please follow the instructions there, and include
your name and email address in the README file.

If the patch fixes a bug, it is usually a good idea to include
all the information described in "How to Report Bugs".