curl_multi_wait: no wait if no descriptors to wait for

This is a minor change in behavior after having been pointed out by Mark
Tully and discussed on the list. Initially this case would internally
call poll() with no sockets and a timeout which would equal a sleep for
that specified time.

Bug: http://curl.haxx.se/mail/lib-2012-10/0076.html
Reported by: Mark Tully
diff --git a/docs/libcurl/curl_multi_wait.3 b/docs/libcurl/curl_multi_wait.3
index ad97d47..b14760b 100644
--- a/docs/libcurl/curl_multi_wait.3
+++ b/docs/libcurl/curl_multi_wait.3
@@ -43,6 +43,9 @@
 On completion, if \fInumfds\fP is supplied, it will be populated with the
 number of file descriptors on which interesting events occured.
 
+If no extra file descriptors are provided and libcurl has no file descriptor
+to offer to wait for, this function will return immediately.
+
 This function is encouraged to be used instead of select(3) when using the
 multi interface to allow applications to easier circumvent the common problem
 with 1024 maximum file descriptors.
@@ -67,6 +70,6 @@
 CURLMcode type, general libcurl multi interface error code. See
 \fIlibcurl-errors(3)\fP
 .SH AVAILABILITY
-This function was added in libcurl 7.28.0
+This function was added in libcurl 7.28.0.
 .SH "SEE ALSO"
 .BR curl_multi_fdset "(3), " curl_multi_perform "(3)"
diff --git a/lib/multi.c b/lib/multi.c
index 6506b5e..9388467 100644
--- a/lib/multi.c
+++ b/lib/multi.c
@@ -1024,8 +1024,12 @@
     ++nfds;
   }
 
-  /* wait... */
-  i = Curl_poll(ufds, nfds, timeout_ms);
+  if(nfds)
+    /* wait... */
+    i = Curl_poll(ufds, nfds, timeout_ms);
+  else
+    i = 0;
+
   free(ufds);
   if(ret)
     *ret = i;