mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-10 03:16:17 +01:00
Low-level core library that forms the basis for projects such as GTK+ and GNOME.
b965bb5db1
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. |
||
---|---|---|
debian | ||
docs | ||
glib | ||
gmodule | ||
gobject | ||
gthread | ||
m4macros | ||
tests | ||
.cvsignore | ||
acconfig.h | ||
acglib.m4 | ||
acinclude.m4 | ||
AUTHORS | ||
autogen.sh | ||
build-dll | ||
ChangeLog | ||
ChangeLog.pre-1-2 | ||
ChangeLog.pre-2-0 | ||
ChangeLog.pre-2-2 | ||
ChangeLog.pre-2-4 | ||
ChangeLog.pre-2-6 | ||
ChangeLog.pre-2-8 | ||
ChangeLog.pre-2-10 | ||
ChangeLog.pre-2-12 | ||
config.guess | ||
config.h.win32.in | ||
config.sub | ||
configure.in | ||
COPYING | ||
garray.c | ||
gasyncqueue.c | ||
gbacktrace.c | ||
gcache.c | ||
gcompletion.c | ||
gdataset.c | ||
gdate.c | ||
gerror.c | ||
gerror.h | ||
ghash.c | ||
ghook.c | ||
giochannel.c | ||
giounix.c | ||
giowin32.c | ||
glib-2.0.m4 | ||
glib-config-2.0.in | ||
glib-object.h | ||
glib.def | ||
glib.h | ||
glib.rc.in | ||
glib.spec.in | ||
glibconfig.h.win32.in | ||
glist.c | ||
gmain.c | ||
gmem.c | ||
gmessages.c | ||
gnode.c | ||
gprimes.c | ||
gqueue.c | ||
grand.c | ||
grel.c | ||
gscanner.c | ||
gslist.c | ||
gstrfuncs.c | ||
gstring.c | ||
gthread.c | ||
gthreadpool.c | ||
gtimer.c | ||
gtree.c | ||
gunichartables.h | ||
gunicode.h | ||
gunidecomp.c | ||
gunidecomp.h | ||
guniprop.c | ||
gutf8.c | ||
gutils.c | ||
gwin32.c | ||
HACKING | ||
INSTALL | ||
ltconfig | ||
ltmain.sh | ||
MAINTAINERS | ||
Makefile.am | ||
makefile.mingw.in | ||
makefile.msc.in | ||
NEWS | ||
README | ||
README.win32 | ||
sanity_check | ||
testgdate.c | ||
testgdateparser.c | ||
testglib.c | ||
TODO.xml |
*** 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".