diff --git a/src/SFML/Window/Unix/JoystickImpl.cpp b/src/SFML/Window/Unix/JoystickImpl.cpp index 04750ba6e..3df329d70 100644 --- a/src/SFML/Window/Unix/JoystickImpl.cpp +++ b/src/SFML/Window/Unix/JoystickImpl.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -253,13 +254,9 @@ namespace // This will not fail since we make sure udevMonitor is valid int monitorFd = udev_monitor_get_fd(udevMonitor); - fd_set descriptorSet; - FD_ZERO(&descriptorSet); - FD_SET(monitorFd, &descriptorSet); - timeval timeout = {0, 0}; + pollfd fds{ monitorFd, POLLIN, 0 }; - return (select(monitorFd + 1, &descriptorSet, NULL, NULL, &timeout) > 0) && - FD_ISSET(monitorFd, &descriptorSet); + return (poll(&fds, 1, 0) > 0) && ((fds.revents & POLLIN) != 0); } // Get a property value from a udev device