changeset 110594:76b6c21279ec

Don¸«£t give write_mask to select for W32. process.c (wait_reading_process_output): Don't pass write_mask to select if SELECT_CANT_DO_WRITE_MASK is defined. (SELECT_CANT_DO_WRITE_MASK): Define if SELECT_CANT_DO_WRITE_MASK.
author Jan D <jan.h.d@swipnet.se>
date Sun, 26 Sep 2010 22:48:13 +0200
parents 27428f586e5d
children ba4c4d4dddf5
files src/ChangeLog src/process.c
diffstat 2 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sun Sep 26 22:21:29 2010 +0200
+++ b/src/ChangeLog	Sun Sep 26 22:48:13 2010 +0200
@@ -2,6 +2,9 @@
 
 	* process.c (add_keyboard_wait_descriptor)
 	(delete_keyboard_wait_descriptor): Reinstate ifdef subprocesses.
+	(wait_reading_process_output): Don't pass write_mask to select
+	if SELECT_CANT_DO_WRITE_MASK is defined.
+	(SELECT_CANT_DO_WRITE_MASK): Define if SELECT_CANT_DO_WRITE_MASK.
 
 	* process.h (add_read_fd, delete_read_fd, add_write_fd)
 	(delete_write_fd): Declare.
--- a/src/process.c	Sun Sep 26 22:21:29 2010 +0200
+++ b/src/process.c	Sun Sep 26 22:48:13 2010 +0200
@@ -201,8 +201,10 @@
 
 /* Define NON_BLOCKING_CONNECT if we can support non-blocking connects.  */
 
+/* Only W32 has this, it really means that select can't take write mask.  */
 #ifdef BROKEN_NON_BLOCKING_CONNECT
 #undef NON_BLOCKING_CONNECT
+#define SELECT_CANT_DO_WRITE_MASK
 #else
 #ifndef NON_BLOCKING_CONNECT
 #ifdef HAVE_SELECT
@@ -4726,7 +4728,11 @@
 	  else
 	    Available = input_wait_mask;
           Writeok = write_mask;
+#ifdef SELECT_CANT_DO_WRITE_MASK
+          check_write = 0;
+#else
           check_write = 1;
+#endif
  	  check_delay = wait_channel >= 0 ? 0 : process_output_delay_count;
 	}