summaryrefslogtreecommitdiff
path: root/src/node_watchdog.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/node_watchdog.cc')
-rw-r--r--src/node_watchdog.cc12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/node_watchdog.cc b/src/node_watchdog.cc
index cec9aa52c9..dd62dd7432 100644
--- a/src/node_watchdog.cc
+++ b/src/node_watchdog.cc
@@ -29,10 +29,13 @@ using v8::V8;
Watchdog::Watchdog(uint64_t ms) : destroyed_(false) {
- loop_ = uv_loop_new();
+ int rc;
+ loop_ = new uv_loop_t;
CHECK(loop_);
+ rc = uv_loop_init(loop_);
+ CHECK_EQ(0, rc);
- int rc = uv_async_init(loop_, &async_, &Watchdog::Async);
+ rc = uv_async_init(loop_, &async_, &Watchdog::Async);
CHECK_EQ(0, rc);
rc = uv_timer_init(loop_, &timer_);
@@ -69,7 +72,10 @@ void Watchdog::Destroy() {
// UV_RUN_DEFAULT so that libuv has a chance to clean up.
uv_run(loop_, UV_RUN_DEFAULT);
- uv_loop_delete(loop_);
+ int rc = uv_loop_close(loop_);
+ CHECK_EQ(0, rc);
+ delete loop_;
+ loop_ = NULL;
destroyed_ = true;
}