Procházet zdrojové kódy

YARN-9327. Improve synchronisation in ProtoUtils#convertToProtoFormat block. Contributed by Bibin A Chundatt.

Sunil G před 5 roky
rodič
revize
0c8813f135

+ 1 - 1
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ProtoUtils.java

@@ -412,7 +412,7 @@ public class ProtoUtils {
   /*
    * Resource
    */
-  public static synchronized ResourceProto convertToProtoFormat(Resource r) {
+  public static ResourceProto convertToProtoFormat(Resource r) {
     return ResourcePBImpl.getProto(r);
   }
 

+ 3 - 3
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ResourcePBImpl.java

@@ -75,14 +75,14 @@ public class ResourcePBImpl extends Resource {
     initResources();
   }
 
-  public ResourceProto getProto() {
+  synchronized public ResourceProto getProto() {
     mergeLocalToProto();
     proto = viaProto ? proto : builder.build();
     viaProto = true;
     return proto;
   }
 
-  private void maybeInitBuilder() {
+  synchronized private void maybeInitBuilder() {
     if (viaProto || builder == null) {
       builder = ResourceProto.newBuilder(proto);
     }
@@ -131,7 +131,7 @@ public class ResourcePBImpl extends Resource {
     resources[VCORES_INDEX].setValue(vCores);
   }
 
-  private void initResources() {
+  synchronized private void initResources() {
     if (this.resources != null) {
       return;
     }