Hi mattn,

2016/2/3 Wed 20:24:02 UTC+9 mattn wrote:
> On Wednesday, February 3, 2016 at 7:47:18 PM UTC+9, Ken Takata wrote:
> > Hi,
> > 
> > I found some problems with the channel feature. (v7.4.1246)
> > 
> > 1. On Win32 GUI, vim hangs up.
> > 
> > :let handle = ch_open('localhost:8765', 'json')
> > :echo ch_sendexpr(handle, 'hello!')
> > Vim hangs up.
> > 
> > Or,
> > 
> > :let handle = ch_open('localhost:8765', 'json')
> > :quit
> > Vim hangs up.
> > 
> > The following patch seems to fix this:
> > 
> > --- a/src/vim.h
> > +++ b/src/vim.h
> > @@ -549,7 +549,7 @@ typedef unsigned long u8char_T;     /* l
> >  # ifdef HAVE_SYS_POLL_H
> >  #  include <sys/poll.h>
> >  #  define HAVE_POLL
> > -# elif defined(WIN32) && !defined(FEAT_GUI_W32)
> > +# elif defined(WIN32)
> >  #  define HAVE_SELECT
> >  # else
> >  #  ifdef HAVE_POLL_H
> > 
> > I'm not sure this is enough.
> > Maybe returning an error code in channel_read() is better?
> 
> Strange. Win32 GUI doesn't require HAVE_SELECT_H because it works with using 
> WSAAsyncSelect() as same as select(2). In the first place, the first patch 
> 7.4.1191 doesn't define HAVE_SELECT_H for windows GUI/CUI. but it worked. I'm 
> guessing there is something another issue.

The hangup occurs in channel_read_json_block() which was added by 7.4.1231.
7.4.1191 is too old. ;-)

channel_wait() always returns OK when HAVE_SELECT_H is not defined, and it
cause an infinite loop.


Regards,
Ken Takata

-- 
-- 
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