From 654267609b54e9943eb102989159ffd002cc618a Mon Sep 17 00:00:00 2001 From: Timothy J Fontaine Date: Wed, 26 Mar 2014 17:09:27 -0700 Subject: [PATCH] src: avoid extra syscalls during node init --- src/node.cc | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/node.cc b/src/node.cc index 3d4008e5a..e9a0d1220 100644 --- a/src/node.cc +++ b/src/node.cc @@ -1614,15 +1614,11 @@ static void CheckStatus(uv_timer_t* watcher, int status) { static Handle Uptime(const Arguments& args) { HandleScope scope; - double uptime; - uv_err_t err = uv_uptime(&uptime); + uv_update_time(uv_default_loop()); + double delta = (uv_now(uv_default_loop()) - prog_start_time) / 1000; - if (err.code != UV_OK) { - return Undefined(); - } - - return scope.Close(Number::New(uptime - prog_start_time)); + return scope.Close(Number::New(static_cast(delta))); } @@ -2772,7 +2768,7 @@ static Handle DebugEnd(const Arguments& args) { char** Init(int argc, char *argv[]) { // Initialize prog_start_time to get relative uptime. - uv_uptime(&prog_start_time); + prog_start_time = uv_now(uv_default_loop()); // Make inherited handles noninheritable. uv_disable_stdio_inheritance();