switching the server to poll/epoll

Adam Jackson ajax at redhat.com
Mon Jun 13 19:26:31 UTC 2016


On Sat, 2016-06-11 at 13:41 -0700, Keith Packard wrote:
> Adam Jackson <ajax at redhat.com> writes:
> 
> > This series breaks the build at a few points. "Move ETEST macro from
> > io.c to osdep.h" needs to happen before "InputThreadFillPipe doesn't
> > need select or poll", since the latter uses ETEST.
> 
> Swapped those two patches.
> 
> > Everything between
> > "Switch server to poll(2)" to "Remove CheckConnections" fails to build
> > because CheckConnections doesn't know sizeof(pollfd).
> 
> Added #include  with the first patch and removed it in the last
> patch.
> 
> I've repushed the series; there isn't any difference in the final code,
> or in the content of the individual patches.

Thanks for fixing this up. A few more comments, hopefully this'll be
the last round of review. I think there's still a few further cleanups
that could happen after this, but nothing worth blocking the series on.

You've still got the glamor glClientWaitSync patch in this series. My
reading of Michel and Eric's comments is that the 3D driver is properly
responsible for this, so it should be dropped before merging. Even if
we were to keep this workaround, it should be conditional on GL 3.2 or
3.1 + ARB_sync or GLES + APPLE_sync.

I'm not convinced of the Xephyr change to drain the event queue in
BlockHandler. How exactly would we not get the notify fd callback?
Surely if xcb_poll_for_queued_event() finds new events to work on, then
the poll() we're about to do would see the fd as readable.

The dmx select→poll conversion needs a trivial fixup now that
dmxsigio.c is gone.

Since WSAPoll doesn't seem to work correctly we should probably do
something like https://github.com/bmc/poll for mingw builds.

For everything else:

Reviewed-by: Adam Jackson <ajax at redhat.com>

- ajax


More information about the xorg-devel mailing list