private V active(){
		//we know at the start, we clearly aren't done
		//and we also know the params are also set
		rec.get().req.done = false;
		while(true){
			boolean locked = true;
			if(!lock.lock()){ //NOT the combiner
				while(!rec.get().req.done &&
						rec.get().active &&
						(locked = lock.isLocked()));
			}
			else{//AM the combiner
				//run through the publication list and complete all the operations
				amLockholder();
				lock.unlock();
				//don't worry about locked. 
			}
			//if we've been set inactive, we need to fix that and continue again
			if(!rec.get().active){
				set_active();
				continue;
			}
			//if lockholder, won't enter.  if came unlocked, and spinning, 
			//we try to grab it
			else if(!locked){
				continue;
			}
			else{//returned
				return rec.get().req.retval;
			}
		}
	}