Patch 7.4.1379
Problem:    Channel test fails on Win32 console.
Solution:   Don't sleep when timeout is zero. Call channel_wait() before
            channel_read(). Channels are not polled during ":sleep". (Yukihiro
            Nakadaira)
Files:      src/channel.c, src/misc2.c, src/gui_w32.c, src/os_win32.c


*** ../vim-7.4.1378/src/channel.c       2016-02-20 23:30:02.876652762 +0100
--- src/channel.c       2016-02-21 17:15:05.606571877 +0100
***************
*** 1582,1588 ****
                                                                 && nread > 0)
                return OK;
            diff = deadline - GetTickCount();
!           if (diff < 0)
                break;
            /* Wait for 5 msec.
             * TODO: increase the sleep time when looping more often */
--- 1582,1588 ----
                                                                 && nread > 0)
                return OK;
            diff = deadline - GetTickCount();
!           if (diff <= 0)
                break;
            /* Wait for 5 msec.
             * TODO: increase the sleep time when looping more often */
***************
*** 1881,1897 ****
        }
      return NULL;
  }
  
      void
  channel_handle_events(void)
  {
      channel_T *channel;
      int               part;
!     static int        loop = 0;
! 
!     /* Skip heavily polling */
!     if (loop++ % 2)
!       return;
  
      for (channel = first_channel; channel != NULL; channel = channel->ch_next)
      {
--- 1881,1899 ----
        }
      return NULL;
  }
+ # endif
  
+ # if defined(WIN32) || defined(PROTO)
+ /*
+  * Check the channels for anything that is ready to be read.
+  * The data is put in the read queue.
+  */
      void
  channel_handle_events(void)
  {
      channel_T *channel;
      int               part;
!     sock_T    fd;
  
      for (channel = first_channel; channel != NULL; channel = channel->ch_next)
      {
***************
*** 1907,1913 ****
        part = PART_SOCK;
  #   endif
  #  endif
!       channel_read(channel, part, "channel_handle_events");
      }
  }
  # endif
--- 1909,1919 ----
        part = PART_SOCK;
  #   endif
  #  endif
!       {
!           fd = channel->ch_part[part].ch_fd;
!           if (fd != INVALID_FD && channel_wait(channel, fd, 0) == OK)
!               channel_read(channel, part, "channel_handle_events");
!       }
      }
  }
  # endif
*** ../vim-7.4.1378/src/misc2.c 2016-02-20 13:54:39.145147032 +0100
--- src/misc2.c 2016-02-21 17:13:32.423533333 +0100
***************
*** 6239,6244 ****
--- 6239,6249 ----
      void
  parse_queued_messages(void)
  {
+     /* For Win32 mch_breakcheck() does not check for input, do it here. */
+ # if defined(WIN32) && defined(FEAT_CHANNEL)
+     channel_handle_events();
+ # endif
+ 
  # ifdef FEAT_NETBEANS_INTG
      /* Process the queued netbeans messages. */
      netbeans_parse_messages();
*** ../vim-7.4.1378/src/gui_w32.c       2016-02-20 18:18:51.761033118 +0100
--- src/gui_w32.c       2016-02-21 17:15:27.486346103 +0100
***************
*** 2248,2257 ****
        parse_queued_messages();
  #endif
  
- #ifdef FEAT_CHANNEL
-       channel_handle_events();
- #endif
- 
        /*
         * Don't use gui_mch_update() because then we will spin-lock until a
         * char arrives, instead we use GetMessage() to hang until an
--- 2248,2253 ----
*** ../vim-7.4.1378/src/os_win32.c      2016-02-19 21:04:57.904318201 +0100
--- src/os_win32.c      2016-02-21 17:15:57.074040727 +0100
***************
*** 1470,1479 ****
        serverProcessPendingMessages();
  #endif
  
- #ifdef FEAT_CHANNEL
-       channel_handle_events();
- #endif
- 
        if (0
  #ifdef FEAT_MOUSE
                || g_nMouseClick != -1
--- 1470,1475 ----
*** ../vim-7.4.1378/src/version.c       2016-02-21 16:40:07.088383778 +0100
--- src/version.c       2016-02-21 17:20:16.519360038 +0100
***************
*** 749,750 ****
--- 749,752 ----
  {   /* Add new patch number below this line */
+ /**/
+     1379,
  /**/

-- 
Q: Is selling software the same as selling hardware?
A: No, good hardware is sold new, good software has already been used by many.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\  an exciting new programming language -- http://www.Zimbu.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui