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