|
@@ -531,6 +531,18 @@ void NodeBindings::LoadEnvironment(node::Environment* env) {
|
|
|
}
|
|
|
|
|
|
void NodeBindings::PrepareMessageLoop() {
|
|
|
+#if !defined(OS_WIN)
|
|
|
+ int handle = uv_backend_fd(uv_loop_);
|
|
|
+#else
|
|
|
+ HANDLE handle = uv_loop_->iocp;
|
|
|
+#endif
|
|
|
+
|
|
|
+ // If the backend fd hasn't changed, don't proceed.
|
|
|
+ if (handle == handle_)
|
|
|
+ return;
|
|
|
+
|
|
|
+ handle_ = handle;
|
|
|
+
|
|
|
// Add dummy handle for libuv, otherwise libuv would quit when there is
|
|
|
// nothing to do.
|
|
|
uv_async_init(uv_loop_, dummy_uv_handle_.get(), nullptr);
|