From b3d265bd9dd1fab938a4487da695cfaea2c07ed0 Mon Sep 17 00:00:00 2001 From: Todd Fisher Date: Fri, 25 Aug 2017 17:06:07 -0400 Subject: [PATCH] Fixes #323 - we should start to handle maxfd == -1 case --- ext/curb_multi.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ext/curb_multi.c b/ext/curb_multi.c index 6d6cb2fb..a85a8f76 100644 --- a/ext/curb_multi.c +++ b/ext/curb_multi.c @@ -634,6 +634,15 @@ VALUE ruby_curl_multi_perform(int argc, VALUE *argv, VALUE self) { raise_curl_multi_error_exception(mcode); } + if (maxfd == -1) { + /* libcurl recommends sleeping for 100ms */ + rb_thread_wait_for(rb_time_timeval(DBL2NUM(0.1))); + rb_curl_multi_run( self, rbcm->handle, &(rbcm->running) ); + rb_curl_multi_read_info( self, rbcm->handle ); + if (block != Qnil) { rb_funcall(block, rb_intern("call"), 1, self); } + continue; + } + #ifdef _WIN32 create_crt_fd(&fdread, &crt_fdread); create_crt_fd(&fdwrite, &crt_fdwrite);