From d2e52fb6bb037b5fae362ac260670f2fdbdcbfdf Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Mon, 14 Sep 2015 16:25:43 +0800 Subject: [PATCH] Set global.setImmediate --- atom/common/lib/init.coffee | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/atom/common/lib/init.coffee b/atom/common/lib/init.coffee index 48f06b93f65..cde0ea3075f 100644 --- a/atom/common/lib/init.coffee +++ b/atom/common/lib/init.coffee @@ -38,10 +38,15 @@ wrapWithActivateUvLoop = (func) -> func.apply this, arguments process.nextTick = wrapWithActivateUvLoop process.nextTick -# setTimeout needs to update the polling timeout of the event loop, when called -# under Chromium's event loop the node's event loop won't get a chance to update -# the timeout, so we have to force the node's event loop to recalculate the -# timeout in browser process. if process.type is 'browser' + # setTimeout needs to update the polling timeout of the event loop, when + # called under Chromium's event loop the node's event loop won't get a chance + # to update the timeout, so we have to force the node's event loop to + # recalculate the timeout in browser process. global.setTimeout = wrapWithActivateUvLoop timers.setTimeout global.setInterval = wrapWithActivateUvLoop timers.setInterval +else + # There are no setImmediate under renderer process by default, so we need to + # manually setup them here. + global.setImmediate = setImmediate + global.clearImmediate = clearImmediate