Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class VersionGenerator {
- private static final AtomicInteger version = new AtomicInteger(0);
- public static int getNextVersion() {
- return version.incrementAndGet();
- }
- }
- public class HeartBeatState implements Serializable {
- private volatile int generation;
- private volatile int version;
- HeartBeatState(int gen) {
- this(gen, 0);
- }
- public HeartBeatState(int gen, int ver) {
- generation = gen;
- version = ver;
- }
- int getGeneration() { return generation;}
- void updateHeartBeat() { version = VersionGenerator.getNextVersion(); }
- int getHeartBeatVersion() { return version; }
- void forceNewerGenerationUnsafe() { generation += 1; }
- void forceHighestPossibleVersionUnsafe() { version = Integer.MAX_VALUE; }
- public String toString() { return
- String.format("HeartBeat: generation = %d, version = %d", generation, version); }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement