From f9a856e7d88fd0efd60e6def15ba2939db82658a Mon Sep 17 00:00:00 2001 From: Samuel Williams Date: Sat, 3 Feb 2018 01:21:58 +1300 Subject: [PATCH] Only update interests if they have changed. --- ext/nio4r/monitor.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ext/nio4r/monitor.c b/ext/nio4r/monitor.c index 988807b..9ddbc92 100644 --- a/ext/nio4r/monitor.c +++ b/ext/nio4r/monitor.c @@ -296,9 +296,11 @@ static void NIO_Monitor_update_interests(VALUE self, int interests) rb_ivar_set(self, rb_intern("interests"), Qnil); } - monitor->interests = interests; + if(monitor->interests != interests) { + monitor->interests = interests; - ev_io_stop(monitor->selector->ev_loop, &monitor->ev_io); - ev_io_set(&monitor->ev_io, monitor->ev_io.fd, monitor->interests); - ev_io_start(monitor->selector->ev_loop, &monitor->ev_io); + ev_io_stop(monitor->selector->ev_loop, &monitor->ev_io); + ev_io_set(&monitor->ev_io, monitor->ev_io.fd, monitor->interests); + ev_io_start(monitor->selector->ev_loop, &monitor->ev_io); + } }