private V runFunc(int op, K key,V val){
		//System.out.println("running op " + op +" with "+ key + " and " + val);
		while(true){
			//set all of the relevent values
			rec.get().req.op = op;
			rec.get().req.key = key;
			rec.get().req.value = val;
			//if it's active run the active function
			if(rec.get().active){
				V ret = active();
				//System.out.println("success " + op +" with "+ key + " and " + val);
				return ret;
			}else{
				//if it's not active, we need to make the 
				//record for this thread active
				set_active();
			}
		}
	}