glib r7373 - in trunk: . glib



Author: tml
Date: Wed Aug 20 01:30:31 2008
New Revision: 7373
URL: http://svn.gnome.org/viewvc/glib?rev=7373&view=rev

Log:
2008-08-20  Tor Lillqvist  <tml novell com>

	Bug 500246 - Bug fixes for giowin32

	* glib/giowin32.c (read_thread) (write_thread): Change the nbytes
	variables to signed.
	(g_io_channel_win32_make_pollfd): Fix an obvious error in the file
	descriptor case leftover after the patch from bug #333098 on
	2006-03-02. Thanks to Marcus Brinkmann.



Modified:
   trunk/ChangeLog
   trunk/glib/giowin32.c

Modified: trunk/glib/giowin32.c
==============================================================================
--- trunk/glib/giowin32.c	(original)
+++ trunk/glib/giowin32.c	Wed Aug 20 01:30:31 2008
@@ -311,7 +311,7 @@
 {
   GIOWin32Channel *channel = parameter;
   guchar *buffer;
-  guint nbytes;
+  gint nbytes;
 
   g_io_channel_ref ((GIOChannel *)channel);
 
@@ -422,7 +422,7 @@
 {
   GIOWin32Channel *channel = parameter;
   guchar *buffer;
-  guint nbytes;
+  gint nbytes;
 
   g_io_channel_ref ((GIOChannel *)channel);
 
@@ -2095,8 +2095,14 @@
 
       fd->fd = (gintptr) win32_channel->data_avail_event;
 
-      if (win32_channel->thread_id == 0 && (condition & G_IO_IN))
+      if (win32_channel->thread_id == 0)
 	{
+	  /* Is it meaningful for a file descriptor to be polled for
+	   * both IN and OUT? For what kind of file descriptor would
+	   * that be? Doesn't seem to make sense, in practise the file
+	   * descriptors handled here are always read or write ends of
+	   * pipes surely, and thus unidirectional.
+	   */
 	  if (condition & G_IO_IN)
 	    create_thread (win32_channel, condition, read_thread);
 	  else if (condition & G_IO_OUT)



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]