Skip to content

Return drained events before blocking in EiConvertEventIterator::next#31

Open
jonas73x wants to merge 1 commit into
ids1024:masterfrom
jonas73x:fix-sender-deadlock
Open

Return drained events before blocking in EiConvertEventIterator::next#31
jonas73x wants to merge 1 commit into
ids1024:masterfrom
jonas73x:fix-sender-deadlock

Conversation

@jonas73x

Copy link
Copy Markdown
Contributor

Follow-up to #25, which drains buffered requests before poll_readable but doesn't return the events the drain just queued.

This deadlocks a sender: the server sends the seat, then goes silent waiting for the client to bind capabilities. The queued SeatAdded is never returned, so poll_readable blocks forever and the client hangs before it can bind. Receivers are unaffected (input keeps the socket readable).

Fix: return any queued event after the drain loop, before blocking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant