curl / Mailing Lists / curl-library / Single Mail
Buy commercial curl support. 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 Daniel himself.

select/poll is never reached

From: Michael via curl-library <curl-library_at_lists.haxx.se>
Date: Sat, 5 Sep 2026 10:31:57 +0500

When a single easy handle is attached to a multi handle and processed
within an execution loop incorporating a zero-timeout multi_wait()
alongside multi_perform(), underlying kernel multiplexers—whether
Winsock or POSIX select()—are completely bypassed. The root cause lies
in data->conn remaining unassigned (NULL) throughout iteration.

The primary function of select() within asynchronous execution is to
serve as a low-overhead gating mechanism, seeking initial socket
readiness prior to invoking the computationally heavier state machine
logic in multi_perform(). Exhaustive descriptor collection is
unnecessary; however, control flow fails to reach the multiplexer
invocation entirely.

Consequently, easy_transfer() degrades into an unconditional execution
branch. Readiness checks for file descriptors are ignored, causing
multi_perform() to be triggered blindly on every iteration cycle
regardless of underlying descriptor state.

An investigation into this state machine behavior is currently underway.
-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html
Received on 2026-09-05