summaryrefslogtreecommitdiff
path: root/tests/gio-test.c
AgeCommit message (Collapse)AuthorFilesLines
2001-07-20make it compile againHans Breuer1-2/+2
2001-07-20 Hans Breuer <hans@breuer.org> * glib/glib/giowin32.c : make it compile again * glib/glib.def : updated exports * glib/makefile.msc.in : * glib/makefile.mingw.in : * tests/makefile.msc.in : reflect glib move * tests/mainloop-test.c : #include <io.h> for _pipe() * tests/gio-test.c : casts for strict compiler settings * makefile.msc.in : new master makefile reflecting the glib move. The '.in' isn't really needed anymore, because there is no version number in it
2001-04-20Add a check for the Darwin dynamic linker. Use AC_TRY_LINK when checkingDan Winship1-1/+1
* configure.in: Add a check for the Darwin dynamic linker. Use AC_TRY_LINK when checking for "nonposix getpwuid_r" so it notices "no getpwuid_r" correctly. * testglib.c (main): Make template[] bigger to prevent an overrun. Remove an unused variable. Initialize error to NULL. * tests/gio-test.c (main): Add a cast to prevent a warning when size_t is a long. * tests/type-test.c (main): Add an #ifdef to prevent a warning when G_HAVE_GINT64 is defined and G_GINT64_FORMAT isn't.
2001-01-25Socket support rewritten. It was utterly broken, and untested in fact. WeTor Lillqvist1-12/+115
2001-01-25 Tor Lillqvist <tml@iki.fi> * giowin32.c: Socket support rewritten. It was utterly broken, and untested in fact. We still do use a thread for each socket being watched, but instead of blocking in recv() (which of course was plain stupid for sockets being liste()ed on), we block in select(). The read method for sockets calls recv(). It is now possible for the application to call accept(), recv() or send() in the callback, just like on Unix. Tested with code kindly provided by Andrew Lanoix. Rename g_io_channel_win32_new_stream_socket() to g_io_channel_win32_new_socket() as it isn't restricted to stream sockets. * gmain.c (g_poll): Related changes in the Win32 version of g_poll(). When polling for messages, always do a PeekMessage() first. We used to miss messages if several were posted between calls to g_poll(). * giochannel.h: Improve Win32-related comments. * gutf8.c: (Win32) Include <stdio.h> for sprintf. * tests/gio-test.c: (Win32) Add tests for polling for Windows messages. * tests/makefile.mingw.in: Remove superfluous compilation command line.
2000-10-06Fix the Win32-only code to use current API,Tor Lillqvist1-1/+3
2000-10-06 Tor Lillqvist <tml@iki.fi> * tests/gio-test.c (main): Fix the Win32-only code to use current API, g_io_channel_win32_make_pollfd() and g_io_channel_win32_poll().
2000-08-21Fix a couple of trivial bugs that were causing warnings.Owen Taylor1-2/+2
Mon Aug 21 14:46:23 2000 Owen Taylor <otaylor@redhat.com> * tests/gio-test.c: Fix a couple of trivial bugs that were causing warnings. Mon Aug 21 14:39:36 2000 Owen Taylor <otaylor@redhat.com> * glib.h: Use C99 varargs macros where possible (check __STDC_VERSION__), otherwise, on gcc, use an alternate form of gcc varargs which is more likely to be supported going forward. (Based on some code from Raja Harinath)
2000-08-06New function, that calls g_source_remove(). Check return value ofTor Lillqvist1-7/+19
2000-08-07 Tor Lillqvist <tml@iki.fi> * tests/gio-test.c (shutdown_source): New function, that calls g_source_remove(). Check return value of g_source_remove(), and decrement running subprocess counter only if g_source_remove() actually did remove the source. (recv_message): Call shutdown_source() on EOF condition. Return FALSE on G_IO_HUP and G_IO_ERR condition. Fix printf format typo.
2000-07-30Compile in the debugging code all the time, but only output debug messagesTor Lillqvist1-36/+61
2000-07-30 Tor Lillqvist <tml@iki.fi> * giowin32.c: Compile in the debugging code all the time, but only output debug messages if told so. Add (unadvertised) function to turn on/off debug messages for a channel. (buffer_read): Don't loop. It is expected behaviour to return a short read occasionally, for instance when reading from pipes. It's the calling code that should loop if it *knows* how much the writer has written. * tests/gio-test.c: Correct the program's name in the output. (recv_message): Loop calling g_io_channel_read() (in a new function read_all()) until we have all the bytes we want (that we know the writer has written/will write).
2000-07-29Finally, a new and improved IO Channel and condition watch implementationTor Lillqvist1-0/+285
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.