mirror of
https://github.com/OpenHFT/Chronicle-Map.git
synced 2021-09-13 01:26:12 +00:00
HCOLL-134 ( release draft cut of the code so that I can test it across my network )
This commit is contained in:
@@ -267,6 +267,8 @@ class BytesExternalizableImpl implements BytesExternalizable {
|
||||
this.allNodes = allNodes;
|
||||
}
|
||||
|
||||
private final AtomicBoolean modificationsComplete = new AtomicBoolean(true);
|
||||
|
||||
/**
|
||||
* this is used to tell nodes that are connecting to us which host and ports are in our grid, along with
|
||||
* all the identifiers.
|
||||
@@ -277,6 +279,8 @@ class BytesExternalizableImpl implements BytesExternalizable {
|
||||
@Override
|
||||
public void writeExternalBytes(@NotNull Bytes destination) {
|
||||
|
||||
modificationsComplete.set(true);
|
||||
|
||||
if (bootstrapRequired.getAndSet(false)) {
|
||||
//destination.write(BOOTSTRAP_BYTES);
|
||||
BOOTSTRAP_BYTES.clear();
|
||||
@@ -303,7 +307,8 @@ class BytesExternalizableImpl implements BytesExternalizable {
|
||||
destination.writeUnsignedShort((int) bytes.remaining());
|
||||
destination.write(bytes);
|
||||
|
||||
|
||||
if (!(modificationsComplete.get()))
|
||||
modificationNotifier.onChange();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -311,7 +316,7 @@ class BytesExternalizableImpl implements BytesExternalizable {
|
||||
|
||||
if (isBootstrap(source)) {
|
||||
System.out.println("received Bootstrap");
|
||||
//modificationNotifier.onChange();
|
||||
onChange();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -352,6 +357,11 @@ class BytesExternalizableImpl implements BytesExternalizable {
|
||||
|
||||
}
|
||||
|
||||
private void onChange() {
|
||||
modificationsComplete.set(false);
|
||||
modificationNotifier.onChange();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param source
|
||||
@@ -414,18 +424,18 @@ class BytesExternalizableImpl implements BytesExternalizable {
|
||||
|
||||
public void sendBootStrap() {
|
||||
bootstrapRequired.set(true);
|
||||
onChange();
|
||||
}
|
||||
|
||||
public void add(InetSocketAddress interfaceAddress) {
|
||||
allNodes.add(interfaceAddress);
|
||||
modificationNotifier.onChange();
|
||||
|
||||
onChange();
|
||||
}
|
||||
|
||||
|
||||
public void add(byte identifier) {
|
||||
allNodes.activeIdentifierBitSet().set(identifier);
|
||||
modificationNotifier.onChange();
|
||||
onChange();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user