diff --git a/src/node_timer.cc b/src/node_timer.cc index 1a3ed791d3..5ab409b048 100644 --- a/src/node_timer.cc +++ b/src/node_timer.cc @@ -149,8 +149,10 @@ Handle Timer::Again(const Arguments& args) { int was_active = ev_is_active(&timer->watcher_); - ev_tstamp repeat = NODE_V8_UNIXTIME(args[0]); - if (repeat > 0) timer->watcher_.repeat = repeat; + if (args.Length() > 0) { + ev_tstamp repeat = NODE_V8_UNIXTIME(args[0]); + if (repeat > 0) timer->watcher_.repeat = repeat; + } ev_timer_again(EV_DEFAULT_UC_ &timer->watcher_); diff --git a/src/node_timer.h b/src/node_timer.h index fdf2a2394f..56352912a6 100644 --- a/src/node_timer.h +++ b/src/node_timer.h @@ -15,7 +15,10 @@ class Timer : ObjectWrap { protected: static v8::Persistent constructor_template; - Timer () : ObjectWrap () { } + Timer () : ObjectWrap () { + // dummy timeout values + ev_timer_init(&watcher_, OnTimeout, 0., 1.); + } ~Timer(); static v8::Handle New (const v8::Arguments& args);