KOSAKI Motohiro <kosaki.motohiro / gmail.com> wrote:
> > Your patch looks reasonable to me, but maybe some platforms break under it...
> 
> Can you please clarify this? Which platform break and why?

Nevermind, see below:

> > I was trying to emulate rb_io_wait_writable() logic which calls
> > rb_thread_fd_writable() (which wraps select() if there are multiple threads).
> > Maybe avoiding select() in all EINTR cases will work, I am under the impression
> > a lot of the select()-wrapping calls in Ruby are relics of the old green threading
> > and can be removed.
> 
> I missed your point. If anyone set non-blocking flag and call socket#connect,
> the connect call in rsock_connect() can return non-blocking related error. We
> have to care it even though we only have single thread. Am I missing something?

You're correct.  I was mistaken and thought rsock_connect() was intended
to be retrying and emulate a blocking operation (like IO#write even if
O_NONBLOCK is set)

-- 
Eric Wong