xpra icon
Bug tracker and wiki

Opened 3 months ago

Closed 3 months ago

#1798 closed enhancement (fixed)

remove synchronization points in nested X11 contexts

Reported by: Antoine Martin Owned by: J. Max Mena
Priority: major Milestone: 2.3
Component: server Version: 2.2.x
Keywords: x11 gdk Cc:

Description (last modified by Antoine Martin)

We have been running with a call to gdk flush whenever we exit a nested X11 context since r1783 (back in 2012!), the unsynced version was briefly enabled in r1777.
r18869 has added unchecked context detection, including a few fixes, so now is a good time to try again.
This may cause crashes if we somehow end up getting back to the gtk main loop without first calling flush and trapping X11 errors. But since those are nested contexts, we should always be exiting the outer context before returning to gtk.

Change History (2)

comment:1 Changed 3 months ago by Antoine Martin

Description: modified (diff)
Owner: changed from Antoine Martin to J. Max Mena

Done in r18922, this tiny commit can be undone by running with XPRA_SYNCHRONIZE=0 xpra start ..

Effects:

  • might make things faster, especially when there is some latency between the xpra server and the X11 server (ie: when running them on separate systems, which is crazy, but I've seen people do that)
  • can make errors get reported against the outer sync context, rather than the innermost one - if and when such errors occur, we can turn sync back on to get better error messages
  • could potentially cause crashes, in which case we'll revert this change - I've stress tested it for 2 weeks and not seen any problems

@maxmylyn: mostly a FYI.

comment:2 Changed 3 months ago by J. Max Mena

Resolution: fixed
Status: newclosed

Noted and closing.

Note: See TracTickets for help on using tickets.