Guest User

Untitled

a guest
May 27th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1.  
  2. public class KindergartenManager extends BaseManager {
  3. static final int SLEEP_PERIOD = 1000; // was 100
  4. static final int MAX_RETRIES = 100; // was 10
  5. TreeSet<KindergartenManager> otherChildren;
  6.  
  7. /** Creates new Kindergarten manager */
  8. public KindergartenManager() {
  9. super();
  10. otherChildren = new TreeSet<KindergartenManager>();
  11. otherChildren.add(this);
  12. }
  13.  
  14. @Override
  15. public void resolveConflict(Transaction me, Transaction other) {
  16. try {
  17. KindergartenManager otherManager =
  18. (KindergartenManager) other.getContentionManager();
  19. // first, check sharing records.
  20. if (otherChildren.contains(otherManager)) {
  21. otherChildren.remove(otherManager);
  22. other.abort(); // My turn! My turn!
  23. return;
  24. }
  25. else {
  26. otherChildren.add(otherManager);
  27. }
  28. me.abort(); // give up
  29. return;
  30. } catch (ClassCastException e) {
  31. other.abort(); // Oh, other not a Kindergartener. Kill it.
  32. return;
  33. }
  34. }
  35. }
Add Comment
Please, Sign In to add comment