Class AgentBuilder.CircularityLock.WithInnerClassLoadingLock

java.lang.Object
net.bytebuddy.agent.builder.AgentBuilder.CircularityLock.WithInnerClassLoadingLock
All Implemented Interfaces:
AgentBuilder.CircularityLock
Direct Known Subclasses:
AgentBuilder.CircularityLock.Default, AgentBuilder.CircularityLock.Global
Enclosing interface:
AgentBuilder.CircularityLock

public abstract static class AgentBuilder.CircularityLock.WithInnerClassLoadingLock extends Object implements AgentBuilder.CircularityLock
A circularity lock that surrounds the locking mechanism with a global lock to prevent that the locking mechanism itself loads classes and causes a circularity issue.
  • Field Details

  • Constructor Details

    • WithInnerClassLoadingLock

      protected WithInnerClassLoadingLock(int size)
      Creates a circularity lock with a global outer lock.
      Parameters:
      size - The amount of locks used in parallel or 0 if no global locks should be used.
  • 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.
    • doAcquire

      protected abstract boolean doAcquire()
      Acquires the actual lock for the current thread.
      Returns:
      true if the lock was acquired successfully, false if it is already hold.