From f968fb72ecf40d1446bfd2d3fd3c1b5ad7ec3218 Mon Sep 17 00:00:00 2001 From: Nick Frasser Date: Thu, 14 Feb 2019 17:38:10 -0500 Subject: [PATCH] fix: don't restart polling when libuv emits an error This prevents an infinite loop of polling on a bad file handle --- packages/bindings/src/poller.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/bindings/src/poller.cpp b/packages/bindings/src/poller.cpp index 8b4c2a881..d611138a0 100644 --- a/packages/bindings/src/poller.cpp +++ b/packages/bindings/src/poller.cpp @@ -61,10 +61,10 @@ void Poller::onData(uv_poll_t* handle, int status, int events) { // fprintf(stdout, "OnData status=%d events=%d\n", status, events); argv[0] = Nan::Null(); argv[1] = Nan::New(events); + // remove triggered events from the poll + int newEvents = obj->events & ~events; + obj->poll(newEvents); } - // remove triggered events from the poll - int newEvents = obj->events & ~events; - obj->poll(newEvents); obj->callback.Call(2, argv, obj); }