diff options
| -rw-r--r-- | src/ChangeLog | 3 | ||||
| -rw-r--r-- | src/process.c | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 335938916cf..75cb5704059 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -2,6 +2,9 @@ | |||
| 2 | 2 | ||
| 3 | * process.c (add_keyboard_wait_descriptor) | 3 | * process.c (add_keyboard_wait_descriptor) |
| 4 | (delete_keyboard_wait_descriptor): Reinstate ifdef subprocesses. | 4 | (delete_keyboard_wait_descriptor): Reinstate ifdef subprocesses. |
| 5 | (wait_reading_process_output): Don't pass write_mask to select | ||
| 6 | if SELECT_CANT_DO_WRITE_MASK is defined. | ||
| 7 | (SELECT_CANT_DO_WRITE_MASK): Define if SELECT_CANT_DO_WRITE_MASK. | ||
| 5 | 8 | ||
| 6 | * process.h (add_read_fd, delete_read_fd, add_write_fd) | 9 | * process.h (add_read_fd, delete_read_fd, add_write_fd) |
| 7 | (delete_write_fd): Declare. | 10 | (delete_write_fd): Declare. |
diff --git a/src/process.c b/src/process.c index d29168bcfd1..70cc8250add 100644 --- a/src/process.c +++ b/src/process.c | |||
| @@ -201,8 +201,10 @@ int update_tick; | |||
| 201 | 201 | ||
| 202 | /* Define NON_BLOCKING_CONNECT if we can support non-blocking connects. */ | 202 | /* Define NON_BLOCKING_CONNECT if we can support non-blocking connects. */ |
| 203 | 203 | ||
| 204 | /* Only W32 has this, it really means that select can't take write mask. */ | ||
| 204 | #ifdef BROKEN_NON_BLOCKING_CONNECT | 205 | #ifdef BROKEN_NON_BLOCKING_CONNECT |
| 205 | #undef NON_BLOCKING_CONNECT | 206 | #undef NON_BLOCKING_CONNECT |
| 207 | #define SELECT_CANT_DO_WRITE_MASK | ||
| 206 | #else | 208 | #else |
| 207 | #ifndef NON_BLOCKING_CONNECT | 209 | #ifndef NON_BLOCKING_CONNECT |
| 208 | #ifdef HAVE_SELECT | 210 | #ifdef HAVE_SELECT |
| @@ -4726,7 +4728,11 @@ wait_reading_process_output (int time_limit, int microsecs, int read_kbd, | |||
| 4726 | else | 4728 | else |
| 4727 | Available = input_wait_mask; | 4729 | Available = input_wait_mask; |
| 4728 | Writeok = write_mask; | 4730 | Writeok = write_mask; |
| 4731 | #ifdef SELECT_CANT_DO_WRITE_MASK | ||
| 4732 | check_write = 0; | ||
| 4733 | #else | ||
| 4729 | check_write = 1; | 4734 | check_write = 1; |
| 4735 | #endif | ||
| 4730 | check_delay = wait_channel >= 0 ? 0 : process_output_delay_count; | 4736 | check_delay = wait_channel >= 0 ? 0 : process_output_delay_count; |
| 4731 | } | 4737 | } |
| 4732 | 4738 | ||