Simplify drmmode_handle_uevents

No functional change intended.

Reviewed-by: Jim Qu <Jim.Qu@amd.com>
This commit is contained in:
Michel Dänzer
2016-12-15 12:42:44 +09:00
committed by Michel Dänzer
parent 732cf4d3a2
commit edd276185d

View File

@@ -2528,21 +2528,15 @@ static void drmmode_handle_uevents(int fd, void *closure)
ScrnInfoPtr scrn = drmmode->scrn;
struct udev_device *dev;
Bool received = FALSE;
struct timeval tv;
struct timeval tv = { 0, 0 };
fd_set readfd;
int ret;
FD_ZERO(&readfd);
FD_SET(fd, &readfd);
tv.tv_sec = 0;
tv.tv_usec = 0;
while (1) {
ret = select(fd + 1, &readfd, NULL, NULL, &tv);
/* Check if our file descriptor has received data. */
if (!(ret > 0 && FD_ISSET(fd, &readfd)))
break;
/* Make the call to receive device. select() ensured that this will not be blocked. */
while (select(fd + 1, &readfd, NULL, NULL, &tv) > 0 &&
FD_ISSET(fd, &readfd)) {
/* select() ensured that this will not block */
dev = udev_monitor_receive_device(drmmode->uevent_monitor);
if (dev) {
udev_device_unref(dev);