osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GitHub] activemq-artemis pull request #2328: ARTEMIS-2095 - Typed Properties ThreadS...


Github user michaelandrepearce commented on a diff in the pull request:

    https://github.com/apache/activemq-artemis/pull/2328#discussion_r220273724
  
    --- Diff: artemis-commons/src/main/java/org/apache/activemq/artemis/utils/collections/TypedProperties.java ---
    @@ -1056,4 +1107,26 @@ public static void setObjectProperty(final SimpleString key, final Object value,
              throw new ActiveMQPropertyConversionException(value.getClass() + " is not a valid property type");
           }
        }
    +
    +
    +
    +   private <T> T withWriteLock(Supplier<T> supplier) {
    +      long lock = this.writeLock();
    +      try {
    +         return supplier.get();
    +      } finally {
    +         this.unlockWrite(lock);
    +      }
    +   }
    +
    +   private <T> T withReadLock(Supplier<T> supplier) {
    --- End diff --
    
    I did it this way, so we can be sure a) always unlocked in finally b) makes it reusable as new methods added, c) its still more performant than using sync blocks or methods.


---