package rttm.idioms;
import rttm.atomic;
import rttm.common.AtomicLinkedList;
import rttm.common.AtomicLinkedList.LinkedObject;
public class Privatization {
AtomicLinkedList<String> atomicList;
@atomic public void insertString(String data, LinkedObject<String> lo) {
atomicList.insert(lo);
lo.setData(data);
}
public void removeAndPrintString() { // privatization
LinkedObject<String> lo = atomicList.remove(); // remove atomically
// do I/O outside of transaction
if (lo != null) {
System.out.println(lo.getData()); // this is safe
}
}
}