public void UnLock(){
    	FCNode myNode = (FCNode)myFCNode.get();
    	
    	if (myNode.canBeGlobalTail){
    		while(true){
    			if (globalQueueTail.get() == myNode){
    				//System.out.println("1 t: "+ ((TestThread)Thread.currentThread()).getThreadId());
    				if(globalQueueTail.compareAndSet(myNode,null)){
    					myNode.isOwner.set(false);
    					myNode.canBeGlobalTail = false;
    					myNode.GLNext = null;
    					break;
    				}
    			}else{
    				if(myNode.GLNext != null){
    					//System.out.println("2 t: "+ ((TestThread)Thread.currentThread()).getThreadId());
    					myNode.GLNext.isOwner.set(true);// = true;
    					myNode.isOwner.set(false);
    					myNode.canBeGlobalTail = false;
    					myNode.GLNext = null;
    					break;
    				}
    			}
    		}
    	}else{
    		//System.out.println("3 t: "+ ((TestThread)Thread.currentThread()).getThreadId());
    		myNode.GLNext.isOwner.set(true);// = true;
    		myNode.isOwner.set(false);
    		myNode.GLNext = null;
    	}
    	return;
    }