From 4fb88de009248476b8ef6d61b67634ee12aed972 Mon Sep 17 00:00:00 2001 From: Sergey Kryzhanovsky Date: Sat, 5 May 2012 00:22:29 +0300 Subject: [PATCH] prevent 'one-plan' loop in shiftJobs --- lib/workers.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/workers.js b/lib/workers.js index c303a81..4a42425 100644 --- a/lib/workers.js +++ b/lib/workers.js @@ -149,15 +149,17 @@ module.exports = INHERIT({ */ shiftJobFromPlans: function(id) { var plan = this.nextOperablePlan(), - startId = plan && plan.getId(); + startId = plan && plan.getId(), + donePlans = {}; if (startId) { do { if (plan.nextJob(id)) { this.addFinishListener(id, plan.getId()); } + donePlans[plan.getId()] = 1; plan = this.nextOperablePlan(); - } while (plan && plan.getId() !== startId); + } while (plan && !donePlans[plan.getId()]); } },