* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-int uloop_init(void)
+static int uloop_init_pollfd(void)
{
struct timespec timeout = { 0, 0 };
struct kevent ev = {};
if (changed & ULOOP_EDGE_TRIGGER)
changed |= flags;
+ if (!changed)
+ return 0;
+
if (changed & ULOOP_READ) {
kflags = get_flags(flags, ULOOP_READ);
EV_SET(&ev[nev++], fd->fd, EVFILT_READ, kflags, 0, 0, fd);
if (!flags)
fl |= EV_DELETE;
- fd->flags = flags;
if (kevent(poll_fd, ev, nev, NULL, fl, &timeout) == -1)
return -1;