From 30499812e7729affe1ff74dcc872003c148a2b4c Mon Sep 17 00:00:00 2001 From: David Glasser Date: Wed, 5 Nov 2014 17:53:16 -0800 Subject: [PATCH] use bindEnvironment in forkJoin --- tools/buildmessage.js | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) diff --git a/tools/buildmessage.js b/tools/buildmessage.js index 500c66aedc..c977b3a707 100644 --- a/tools/buildmessage.js +++ b/tools/buildmessage.js @@ -499,33 +499,24 @@ var forkJoin = function (options, iterable, fn) { options.forkJoin = true; enterJob(options, function () { - var job = currentJob.get(); - var messageSet = currentMessageSet.get(); - var progress = currentProgress.get(); - var nestingLevel = currentNestingLevel.get(); - var parallel = (options.parallel !== undefined) ? options.parallel : true; if (parallel) { + var runOne = fiberHelpers.bindEnvironment(function (fut, fnArguments) { + try { + var result = enterJob({title: (options.title || '') + ' child'}, function () { + return fn.apply(null, fnArguments); + }); + fut['return'](result); + } catch (e) { + fut['throw'](e); + } + }); + _.each(iterable, function (/*arguments*/) { var fut = new Future(); var fnArguments = arguments; Fiber(function () { - currentNestingLevel.withValue(nestingLevel, function() { - currentProgress.withValue(progress, function () { - currentMessageSet.withValue(messageSet, function () { - currentJob.withValue(job, function () { - try { - var result = enterJob({title: (options.title || '') + ' child'}, function () { - return fn.apply(null, fnArguments); - }); - fut['return'](result); - } catch (e) { - fut['throw'](e); - } - }); - }); - }); - }); + runOne(fut, fnArguments); }).run(); futures.push(fut); });