imbajin commented on code in PR #2151:
URL:
https://github.com/apache/incubator-hugegraph/pull/2151#discussion_r1130629360
##########
hugegraph-core/src/main/java/org/apache/hugegraph/masterelection/GlobalMasterInfo.java:
##########
@@ -19,26 +19,20 @@
public class GlobalMasterInfo {
- private boolean isMaster;
- private String url;
-
+ private volatile Info info;
private volatile boolean featureSupport;
public GlobalMasterInfo() {
this.featureSupport = false;
+ this.info = new Info(false, "");
}
- public synchronized void set(boolean isMaster, String url) {
- this.isMaster = isMaster;
- this.url = url;
- }
-
- public synchronized boolean isMaster() {
- return this.isMaster;
+ public void info(boolean isMaster, String url) {
+ this.info = new Info(isMaster, url);
Review Comment:
`volatile Info info = new Info(isMaster, url);`
Does `volatile` guarantee the atomic integrity of `Info` initialization? Or
shall we consider to use `final` to guarantee to complete initialization like:
`final Info info = new Info(isMaster, url);`
**Update**:volatile could guarantee the obj init integrity, I forgot it:)
However, if we don't need the obj watchable in all the time, 'final' is enough
for these cases(more lightly)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]