Skip to content

Commit

Permalink
timers: refactor to use module.exports
Browse files Browse the repository at this point in the history
PR-URL: #26583
Refs: #26546
Reviewed-By: Anna Henningsen <anna@addaleax.net>
  • Loading branch information
joyeecheung authored and targos committed Mar 27, 2019
1 parent 255de69 commit e6367c2
Showing 1 changed file with 30 additions and 30 deletions.
60 changes: 30 additions & 30 deletions lib/timers.js
Original file line number Diff line number Diff line change
Expand Up @@ -185,16 +185,15 @@ function decRefCount() {

// Schedule or re-schedule a timer.
// The item must have been enroll()'d first.
const active = exports.active = function(item) {
function active(item) {
insert(item, true, getLibuvNow());
};
}

// Internal APIs that need timeouts should use `_unrefActive()` instead of
// `active()` so that they do not unnecessarily keep the process open.
exports._unrefActive = function(item) {
function _unrefActive(item) {
insert(item, false, getLibuvNow());
};

}

// The underlying logic for scheduling or re-scheduling a timer.
//
Expand Down Expand Up @@ -406,12 +405,6 @@ function unenroll(item) {
item._idleTimeout = -1;
}

exports.unenroll = util.deprecate(unenroll,
'timers.unenroll() is deprecated. ' +
'Please use clearTimeout instead.',
'DEP0096');


// Make a regular object able to act as a timer by setting some properties.
// This function does not start the timer, see `active()`.
// Using existing objects as timers slightly reduces object overhead.
Expand All @@ -426,11 +419,6 @@ function enroll(item, msecs) {
item._idleTimeout = msecs;
}

exports.enroll = util.deprecate(enroll,
'timers.enroll() is deprecated. ' +
'Please use setTimeout instead.',
'DEP0095');


/*
* DOM-style timers
Expand Down Expand Up @@ -476,18 +464,14 @@ setTimeout[internalUtil.promisify.custom] = function(after, value) {
});
};

exports.setTimeout = setTimeout;


const clearTimeout = exports.clearTimeout = function clearTimeout(timer) {
function clearTimeout(timer) {
if (timer && timer._onTimeout) {
timer._onTimeout = null;
unenroll(timer);
}
};

}

exports.setInterval = function setInterval(callback, repeat, arg1, arg2, arg3) {
function setInterval(callback, repeat, arg1, arg2, arg3) {
if (typeof callback !== 'function') {
throw new ERR_INVALID_CALLBACK();
}
Expand Down Expand Up @@ -517,14 +501,14 @@ exports.setInterval = function setInterval(callback, repeat, arg1, arg2, arg3) {
active(timeout);

return timeout;
};
}

exports.clearInterval = function clearInterval(timer) {
function clearInterval(timer) {
// clearTimeout and clearInterval can be used to clear timers created from
// both setTimeout and setInterval, as specified by HTML Living Standard:
// https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval
clearTimeout(timer);
};
}


Timeout.prototype.unref = function() {
Expand Down Expand Up @@ -739,10 +723,7 @@ setImmediate[internalUtil.promisify.custom] = function(value) {
return new Promise((resolve) => new Immediate(resolve, [value]));
};

exports.setImmediate = setImmediate;


exports.clearImmediate = function clearImmediate(immediate) {
function clearImmediate(immediate) {
if (!immediate || immediate._destroyed)
return;

Expand All @@ -760,4 +741,23 @@ exports.clearImmediate = function clearImmediate(immediate) {
immediate._onImmediate = null;

immediateQueue.remove(immediate);
}

module.exports = {
_unrefActive,
active,
setTimeout,
clearTimeout,
setImmediate,
clearImmediate,
setInterval,
clearInterval,
unenroll: util.deprecate(
unenroll,
'timers.unenroll() is deprecated. Please use clearTimeout instead.',
'DEP0096'),
enroll: util.deprecate(
enroll,
'timers.enroll() is deprecated. Please use setTimeout instead.',
'DEP0095')
};

0 comments on commit e6367c2

Please sign in to comment.