One way how the things could be probably made much simpler is if we could get rid of refill_buffer() in the end of reading response (that would allow simpler splitting between send and receive part). Do you happen to know why that refill_buffer() was needed?
On 5 Dec 2022, at 06:29, Hans Leidekker (@hans) wine@gitlab.winehq.org wrote:
Overall I'm worried by the complexity added in this patchset. There are 8 new fields in struct request and it has become a lot harder to follow the code. It seems to me that not all of sending_request/recursive_request/receive_response_queue_state should be necessary with the right queuing model.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/1582#note_18629