Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class KindergartenManager extends BaseManager {
- static final int SLEEP_PERIOD = 1000; // was 100
- static final int MAX_RETRIES = 100; // was 10
- TreeSet<KindergartenManager> otherChildren;
- /** Creates new Kindergarten manager */
- public KindergartenManager() {
- super();
- otherChildren = new TreeSet<KindergartenManager>();
- otherChildren.add(this);
- }
- @Override
- public void resolveConflict(Transaction me, Transaction other) {
- try {
- KindergartenManager otherManager =
- (KindergartenManager) other.getContentionManager();
- // first, check sharing records.
- if (otherChildren.contains(otherManager)) {
- otherChildren.remove(otherManager);
- other.abort(); // My turn! My turn!
- return;
- }
- else {
- otherChildren.add(otherManager);
- }
- me.abort(); // give up
- return;
- } catch (ClassCastException e) {
- other.abort(); // Oh, other not a Kindergartener. Kill it.
- return;
- }
- }
- }
Add Comment
Please, Sign In to add comment