Class AgentBuilder.CircularityLock.Default

java.lang.Object
java.lang.ThreadLocal<Boolean>
net.bytebuddy.agent.builder.AgentBuilder.CircularityLock.Default
All Implemented Interfaces:
AgentBuilder.CircularityLock
Enclosing interface:
AgentBuilder.CircularityLock

public static class AgentBuilder.CircularityLock.Default extends ThreadLocal<Boolean> implements AgentBuilder.CircularityLock
A default implementation of a circularity lock. Since class loading already synchronizes on a class loader, it suffices to apply a thread-local lock.
  • Field Details

    • NOT_ACQUIRED

      @AlwaysNull private static final Boolean NOT_ACQUIRED
      Indicates that the circularity lock is not currently acquired.
  • Constructor Details

    • Default

      public Default()
  • Method Details

    • acquire

      public boolean acquire()
      Attempts to acquire a circularity lock.
      Specified by:
      acquire in interface AgentBuilder.CircularityLock
      Returns:
      true if the lock was acquired successfully, false if it is already hold.
    • release

      public void release()
      Releases the circularity lock if it is currently acquired.
      Specified by:
      release in interface AgentBuilder.CircularityLock