> Your patch looks reasonable to me, but maybe some platforms break under it...

Can you please clarify this? Which platform break and why?


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