[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