lib: add multi_wakeup_internal

For threaded resolving, added an additional socket/eventfd pair to the
multi handle for notifications from threads. The original "double use"
of the standard wakeup pair did lead to regressions for apps.

The API definition of curl_multi_poll/wait/wakeup is pretty tight
regarding what effects what and adding notifications on top of that
broke what apps perceived to be the contract.

Fixes #22272
Reported-by: Sergei Zimmerman
Closes #22274
This commit is contained in:
Stefan Eissing 2026-07-08 10:34:51 +02:00 committed by Daniel Stenberg
parent bd58857201
commit 009fd378e8
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
8 changed files with 136 additions and 12 deletions

30
tests/data/test2414 Normal file
View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="US-ASCII"?>
<testcase>
<info>
<keywords>
multi
wakeup
</keywords>
</info>
# Client-side
<client>
<features>
wakeup
</features>
<server>
</server>
<tool>
lib%TESTNUMBER
</tool>
<name>
wakeup, perform and poll needs to exit
</name>
<command>
</command>
</client>
# Verify data after the test has been "shot"
<verify>
</verify>
</testcase>