var dns = require('dns');
var Buffer = require('buffer').Buffer;
-var IOWatcher = process.IOWatcher;
+var IOWatcher = process.binding('io_watcher').IOWatcher;
var binding = process.binding('net');
var socket = binding.socket;
var recvfrom = binding.recvfrom;
var dns = process.binding('cares');
var net = process.binding('net');
+var IOWatcher = process.binding('io_watcher').IOWatcher;
var watchers = {};
var activeWatchers = {};
+var Timer = process.binding('timer').Timer;
-
-var timer = new process.Timer();
+var timer = new Timer();
timer.callback = function () {
var sockets = Object.keys(activeWatchers);
if (socket in watchers) {
watcher = watchers[socket].watcher;
} else {
- watcher = new process.IOWatcher();
+ watcher = new IOWatcher();
watchers[socket] = { read: read
, write: write
, watcher: watcher
var Buffer = require('buffer').Buffer;
var FreeList = require('freelist').FreeList;
-var IOWatcher = process.IOWatcher;
+var IOWatcher = process.binding('io_watcher').IOWatcher;
+var Timer = process.binding('timer').Timer;
var assert = process.assert;
var socket = binding.socket;
if (lists[msecs]) {
list = lists[msecs];
} else {
- list = new process.Timer();
+ list = new Timer();
list._idleNext = list;
list._idlePrev = list;
DefineConstants(exports);
binding_cache->Set(module, exports);
+ } else if (!strcmp(*module_v, "io_watcher")) {
+ exports = Object::New();
+ IOWatcher::Initialize(exports);
+ binding_cache->Set(module, exports);
+
+ } else if (!strcmp(*module_v, "timer")) {
+ exports = Object::New();
+ Timer::Initialize(exports);
+ binding_cache->Set(module, exports);
+
} else if (!strcmp(*module_v, "natives")) {
exports = Object::New();
// Explicitly define native sources.
process->Set(String::NewSymbol("EventEmitter"),
EventEmitter::constructor_template->GetFunction());
-
- // Initialize the C++ modules..................filename of module
- IOWatcher::Initialize(process); // io_watcher.cc
- // Not in use at the moment.
- //IdleWatcher::Initialize(process); // idle_watcher.cc
- Timer::Initialize(process); // timer.cc
- // coverity[stack_use_callee]
-
// Compile, execute the src/node.js file. (Which was included as static C
// string in node_natives.h. 'natve_node' is the string containing that
// source code.)
}
}
+var Timer; // lazy load
+
global.setTimeout = function (callback, after) {
- var timer = new process.Timer();
+ if (!Timer) Timer = process.binding("timer").Timer;
+ var timer = new Timer();
addTimerListener.apply(timer, arguments);
timer.start(after, 0);
return timer;
};
global.setInterval = function (callback, repeat) {
- var timer = new process.Timer();
+ if (!Timer) Timer = process.binding("timer").Timer;
+ var timer = new Timer();
addTimerListener.apply(timer, arguments);
timer.start(repeat, repeat ? repeat : 1);
return timer;
};
global.clearTimeout = function (timer) {
- if (timer instanceof process.Timer) {
+ if (!Timer) Timer = process.binding("timer").Timer;
+ if (timer instanceof Timer) {
timer.stop();
}
};
global.clearInterval = global.clearTimeout;
+
var stdout;
process.__defineGetter__('stdout', function () {
if (stdout) return stdout;