Conversation
Codecov ReportBase: 25.27% // Head: 25.25% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## master #869 +/- ##
==========================================
- Coverage 25.27% 25.25% -0.02%
==========================================
Files 130 130
Lines 20882 20882
==========================================
- Hits 5277 5274 -3
- Misses 15605 15608 +3
Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
PolyMeilex
left a comment
There was a problem hiding this comment.
LGTM
Kinda off topic, do you think Xwayland shell will help a bit with this convoluted event order dance?
Yes, because it eliminates the race. It requires a relatively recent Xwayland version though, which why I think we will need to keep the old code path for some time anyway. |
The current mechanism by which x11 window ids and their corresponding wl_surfaces are matched, may inject a
LATE_SURFACE_IDclient message similar to the originalWL_SURFACE_IDmessage.The problem with injecting this message is, that to do that it utilizes the same
SyncSender, that is internally used by theX11Source. Given that this sender is sync and limited to 5 in-flight messages, queuing up additional messages from the same thread, that runs the calloop event loop and receives these messages may cause a deadlock. This can often be encountered when multiple windows are spawned by a client at the same time.Instead of making the channel unbound this PR avoids the problem by changing the mechanism all together. Instead of injecting a message, the xwm state is accessed by an idle callback, which isn't prone to cause a deadlock.