var swapNodes = function(a,b){ var i=0; var firstNodePosition=''; var secondNodePosition=''; var firstNodePrevElemPosition=''; var secondNodePrevElemPosition=''; var firstNodeNext = ''; var secondNodeNext= ''; var firstNodePrevElemNext=''; var secondNodePrevElemNext=''; while(list.length){ if(list.current == a){ firstNodePosition = i; firstNodePrevElemPosition = i-1; firstNodeNext = list._next; list.unshift(); firstNodePrevElemNext = list._next; list.shift(); } if(list.current == b){ secondNodePosition = i; secondNodePrevElemPosition = i-1; secondNodeNext = list._next; list.unshift(); secondNodePrevElemNext = list._next; } list.shift(); i++; } //now do the swapping of pointers var temp1 = firstNodePrevElemNext; firstNodePrevElemNext = secondNodePrevElemNext; secondNodePrevElemNext = temp1; var temp2 = secondNodePrevElemNext; console.log(firstNodePosition); console.log(firstNodePrevElemPosition); console.log(secondNodePosition); console.log(secondNodePrevElemPosition); }
return new Promise(function(resolve, reject){ if(deletequeue.length > 0){ var jobs = []; while (deletequeue.length) { jobs.push(deletequeue.shift()); } Promise.map(jobs, function(job){ return server.methods.executionserver.jobDelete(job) .catch(function(e){ console.error("Error while deleting job", job._id, e); console.error("Deleting from the DB now."); }) .then(function(){ return server.methods.dataprovider.jobDelete(job); }) .catch(function(e){ console.error("Error while deleting job", job._id, e); return e; }); }, { concurrency: 1 }) .then(resolve) .catch(function(e){ console.error(e); reject(e); }); }else{ resolve(false); } });
return new Promise(function(resolve, reject){ if(killqueue.length > 0){ var jobs = []; while (killqueue.length) { jobs.push(killqueue.shift()); } Promise.map(jobs, function(job){ return server.methods.executionserver.jobKill(job) .catch(function(e){ console.error("Error while killing job", job._id, e); return e; }); }, { concurrency: 1 }) .then(resolve) .catch(function(e){ console.error(e); reject(e); }); }else{ resolve(false); } });
return new Promise(function(resolve, reject){ if(!retrievingJobs && queue.length > 0){ var jobs = []; retrievingJobs = true; while (queue.length) { var jobid = queue.shift(); jobs.push(inqueue[jobid]); } Promise.map(jobs, function(job){ return server.methods.executionserver.jobStatus(job) .then(function(status){ delete inqueue[job._id]; return status; }) .catch(function(e){ console.error("Error while updating job status", job._id, e); return e; }); }, { concurrency: 1 }) .then(function(res){ retrievingJobs = false; resolve(res); }) .catch(function(e){ retrievingJobs = false; console.error(e); reject(e); }); }else{ resolve(false); } });
function drainQueue() { if (!queue.length || activeTasks >= maxTasks) return; var task = queue.shift(); activeTasks += 1; task(function () { activeTasks -= 1; drainQueue(); }); }
this.generator = (function* (initial){ let data = new LinkedList(); let denominator = period * (period + 1)/2; while (true) { if((data.length) < period ){ data.push(yield) }else { data.resetCursor(); let result = 0; for(let i=1; i<=period; i++){ result = result + (data.next() * i/(denominator)) } var next = yield result; data.shift(); data.push(next); } } })(initial);
return new Promise(function(resolve, reject){ if(!submitingJobs && submitqueue.length > 0){ submitingJobs = true; var jobs = []; while (submitqueue.length) { var jobid = submitqueue.shift(); jobs.push(insubmitqueue[jobid]); } Promise.map(jobs, function(job){ return server.methods.executionserver.submitJob(job) .then(function(res){ delete insubmitqueue[job._id]; return res; }) .catch(function(e){ console.error("Error while submitting job", job._id, e); return e; }); }, { concurrency: 1 }) .then(function(res){ submitingJobs = false; resolve(res); }) .catch(function(e){ submitingJobs = false; console.error(e); reject(e); }); }else{ return resolve(false); } });