public void lock() { QNode node = myNode.get(); node.locked = true; QNode pred = tail.getAndSet(node); myPred.set(pred); while (pred.locked) {} }
public void unlock() { QNode node = myNode.get(); node.locked = false; myNode.set(myPred.get()); }
public void lock() { QNode node = myNode.get(); node.locked = true; QNode pred = tail.getAndSet(node); myPred.set(pred); while (pred.locked) {} }
public void unlock() { QNode node = myNode.get(); node.locked = false; myNode.set(myPred.get()); }