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);

}
Example #2
0
		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);
			}
		});
Example #3
0
		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);
			}
		});
Example #4
0
		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);
			}
		});
Example #5
0
 function drainQueue() {
   if (!queue.length || activeTasks >= maxTasks) return;
   var task = queue.shift();
   activeTasks += 1;
   task(function () {
     activeTasks -= 1;
     drainQueue();
   });
 }
Example #6
0
  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);
Example #7
0
		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);
			}
		});