public class CQueue {
private LLSC x;
public CQueue() {
x = new LLSC(new SeqQueue());
}
public void Enqueue(String data) {
SeqQueue new_queue;
ObjPointer local = new ObjPointer();
while (true) {
x.load_linked(local);
new_queue = new SeqQueue((SeqQueue) local.obj);
new_queue.Enqueue(data);
if (x.store_conditional(local, new_queue))
return;
}
}
public String Dequeue() {
SeqQueue new_queue;
ObjPointer local = new ObjPointer();
String returnval;
while (true) {
x.load_linked(local);
new_queue = new SeqQueue((SeqQueue) local.obj);
returnval = new_queue.Dequeue();
if (x.store_conditional(local, new_queue))
return returnval;
}
}
}