curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support from WolfSSL. We help you work out your issues, debug your libcurl applications, use the API, port to new platforms, add new features and more. With a team lead by the curl founder himself.

curl_multi_poll check breaks previous behavior

From: Matthew Bobowski via curl-library <>
Date: Thu, 22 Sep 2022 20:03:54 +0000


In developing an SDK which uses libcurl internally, I am using the curl multi interface. To simulate Windows API and POSIX wait functions, I passed -1 to the curl_multi_poll() interface which works as expected for libcurl 7.68 waiting forever until receiving data. The routine is woken when data is received, and my program is able to awaken the thread with curl_multi_wakeup() when something of interest occurs (i.e. shutdown to exit the thread).

However, newer versions of libcurl return 10 Ė which is undocumented in libcurl 7.68. After some research, I discovered a new return code identified as CURLM_BAD_FUNCTION_ARGUMENT. And, when looking at the multi.c source code I see that negative numbers are no longer accepted.

I am curious as to why this change was made which breaks expected behavior. Although, I see issue 4763 regarding this, the posters are correct in that there is no apparent documentation for negative, zero, or positive numbers. And, using -1 (or 0xFFFFFFFF) is very commonly used as a maxiumum wait time. Can we go back to previous behavior so we donít see unexpected errors in the field using libcurl?


Sent from Mail<> for Windows

Received on 2022-09-22