1. 31 Aug, 2000 2 commits
  2. 27 Aug, 2000 2 commits
  3. 11 Aug, 2000 1 commit
    • Tor Lillqvist's avatar
      Some indentation and spacing fixes. Add some more logging. · f17ed7ee
      Tor Lillqvist authored
      2000-08-12  Tor Lillqvist  <tml@iki.fi>
      
      	* giowin32.c: Some indentation and spacing fixes. Add some more
      	logging.
      	(g_io_win32_add_watch): New function, with common code from
      	g_io_win32_fd_add_watch and g_io_win32_sock_add_watch. Don't start
      	more than one reader thread for a GIOChannel. We should obviously
      	have just one reader thread reading a file descriptor or socket.
      f17ed7ee
  4. 31 Jul, 2000 2 commits
    • Tor Lillqvist's avatar
      Drop a few unused variables. · c58440ec
      Tor Lillqvist authored
      c58440ec
    • Tor Lillqvist's avatar
      The code didn't compile (must have been sleepy when committing). "return" · beed3997
      Tor Lillqvist authored
      2000-07-31  Tor Lillqvist  <tml@iki.fi>
      
      	* giowin32.c (buffer_read): The code didn't compile (must
      	have been sleepy when committing). "return" instead of "break"
      
      	(g_io_win32_fd_add_watch): Cannot check if the file descriptor is
      	readable by calling ReadFile to read zero bytes. ReadFile blocks
      	on NT even if trying to read nothing at all. So, don't check if
      	file descriptor is readable; assume this function isn't called
      	otherwise.
      beed3997
  5. 30 Jul, 2000 1 commit
    • Tor Lillqvist's avatar
      Compile in the debugging code all the time, but only output debug messages · 1860151d
      Tor Lillqvist authored
      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).
      1860151d
  6. 29 Jul, 2000 1 commit
    • Tor Lillqvist's avatar
      Finally, a new and improved IO Channel and condition watch implementation · b965bb5d
      Tor Lillqvist authored
      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.
      b965bb5d
  7. 26 Jul, 2000 1 commit
  8. 06 Jun, 2000 1 commit
    • Tor Lillqvist's avatar
      If we are watching the same fd several times (for different conditions, · 700b6e5f
      Tor Lillqvist authored
      2000-06-06  Tor Lillqvist  <tml@iki.fi>
      
      * giowin32.c (g_io_channel_win32_pipe_readable): If we are
      watching the same fd several times (for different conditions, with
      different callbacks), check them all. Only call the callback for
      G_IO_IN from here. (This bug popped up when a watch for
      G_IO_ERR|G_IO_HUP was added to gimplib.)
      700b6e5f
  9. 24 Feb, 1999 1 commit
  10. 16 Jan, 1999 1 commit
    • Tor Lillqvist's avatar
      Merge in current Win32 version. Almost no Unix code touched. · f477518c
      Tor Lillqvist authored
      	* README.win32: More text.
      
      	* config.h.win32 glibconfig.h.win32: Update to match the
      	corresponding generated files on Unix.
      
      	* makefile.msc: Update with new source files, and gthread
       	library. Use the compiler flag -MD instead of using -D_DLL and
      	"/nodefaultlib:libc msvcrt.lib" in the link phase.
      
      	* glib.def: Include new functions, drop removed ones.
      
      	* glib.h: Add comments about main loop and polling on Win32. (In
      	general, it's only for the GIMP's use.) Add Win32 IO Channel
      	functions. Remove the obsoleted old IO Channel stuff (which was
      	in #if 0 already).
      
      	* giowin32.c: New file.
      
      	* gmain.c: Include config.h, conditionalize <sys/time.h>
       	inclusion.  Add g_poll implementation for Win32 (only for the
       	GIMP's needs for now, it's hard or even impossible to be as clean
       	and generic as on Unix). Implement g_get_current_time on Win32. If
       	threads aren't supported, don't try to wake up main thread's
       	loop. On Win32, use a semaphore and not a pipe to wake up the main
       	loop.
      
      	* gmessages.c: On Win32, allocate a console window if the standard
      	output handle is invalid before writing to stdout, and reopen stdout
      	to that console window.
      
      	* giochannel.c: Conditionalize unistd.h inclusion. Some indentation
      	cleanup.
      
      	* gstrfuncs.c: Include <signal.h>.
      
      	* gutils.c: On Win32, also check the HOMEDRIVE and HOMEPATH
      	environment variables.
      
      	* gmodule-dl.c gmodule-dld.c: In
       	_g_module_build_path, don't add the "lib" prefix and
       	".so" or ".sl" suffix if already there.
      
      	* gmodule-win32.c: Likewise for the ".dll" suffix.
      
      	* gthread-posix.c: Conditionalize <sys/time.h> inclusion.
      f477518c