[PATCH 4/4] dlls/ntdll: Call try_recv inside sock_recv only if it is safe to do so.

Jinoh Kang jinoh.kang.kr at gmail.com
Tue Jan 18 20:41:41 CST 2022


On 1/19/22 11:30, Jinoh Kang wrote:
> As you can see this inevitably winds up tweaking the select mechanism
> anyway. This approach has some open questions:
> 
> 1. How shell we return the results for our new pseudo-APC call?
>    Using prev_apc in the select request, or a separate server call?
> 
> 2. Shall our pseudo-APC go through the system_apc queue?
>    If so, what if there is another kernel APC that is already queued?
> 
> 3. Shall we reuse invoke_system_apc() for this apc_call_t response?
> 
> 4. Shall we reuse queue_apc() to generate the apc_call_t?
>    If so, what shall be done with the gratuitous SIGUSR1 delivery?
>    Enter uninterrupted region or explicitly block SIGUSR1 while
>    calling receive_sock?

Further remarks:

- If we lean toward "don't reuse anything," we're left with a bunch of APC
  bureaucracies with no apparent merits.
- If we lean toward "reuse as much as possible," we would be left with some
  nontrivial refactoring work to do regarding select calls (e.g. injecting
  prev_apc to server_select/server_wait, special casing the "synchronous APC").

-- 
Sincerely,
Jinoh Kang



More information about the wine-devel mailing list