[Spice-devel] [PATCH] spicec-x11: Fix going into a never ending loop upon xrandr event (#628573)

Alexander Larsson alexl at redhat.com
Thu Sep 2 01:28:37 PDT 2010


On Thu, 2010-09-02 at 10:16 +0200, Hans de Goede wrote:
> Hi,
> 
> On 09/02/2010 09:51 AM, Alexander Larsson wrote:
> > On Wed, 2010-09-01 at 20:15 +0200, Hans de Goede wrote:
> >> ---
> >>   client/x11/platform.cpp |    5 +++++
> >>   1 files changed, 5 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/client/x11/platform.cpp b/client/x11/platform.cpp
> >> index 8292d44..1f25a7f 100644
> >> --- a/client/x11/platform.cpp
> >> +++ b/client/x11/platform.cpp
> >> @@ -778,6 +778,11 @@ DynamicScreen::DynamicScreen(Display* display, int screen, int&  next_mon_id)
> >>       platform_win = XCreateSimpleWindow(display, RootWindow(display, screen), 0, 0, 1, 1, 0, 0, 0);
> >>       XSelectInput(display, platform_win, StructureNotifyMask);
> >>       XRRSelectInput(display, platform_win, RRScreenChangeNotifyMask);
> >> +
> >> +    Monitor::self_monitors_change++;
> >> +    process_monitor_configure_events(platform_win);
> >> +    Monitor::self_monitors_change--;
> >> +
> >>       XPlatform::set_win_proc(platform_win, root_win_proc);
> >>       intern_clipboard_atoms();
> >>       X_DEBUG_SYNC(display);
> >
> > Does this really work? I guess the events come from the XRRSelectInput
> > call, but there is no guarantee that this has even been sent to the
> > xserver (XFlush), even less so gotten the reply into the client event
> > queue. Shouldn't we have some XSync thing here?
> >
> 
> There is an XSync call as the first thing in process_monitor_configure_events

Ah, missed that. Then:

Ack




More information about the Spice-devel mailing list