Package hudson.model

Class Resource


  • public final class Resource
    extends Object
    Represents things that Queue.Executable uses while running.

    This is used in Queue to support basic mutual exclusion/locks. If two Queue.Tasks require the same Resource, they will not be run at the same time.

    Resources are compared by using their names, and need not have the "same object" semantics.

    Since:
    1.121
    • Field Detail

      • displayName

        @NonNull
        public final String displayName
        Human-readable name of this resource. Used for rendering HTML.
      • parent

        @CheckForNull
        public final Resource parent
        Parent resource.

        A child resource is considered a part of the parent resource, so acquiring the parent resource always imply acquiring all the child resources.

      • numConcurrentWrite

        public final int numConcurrentWrite
        Maximum number of concurrent write.
    • Constructor Detail

      • Resource

        public Resource​(@CheckForNull
                        Resource parent,
                        @NonNull
                        String displayName)
      • Resource

        public Resource​(@CheckForNull
                        Resource parent,
                        @NonNull
                        String displayName,
                        int numConcurrentWrite)
        Since:
        1.155
      • Resource

        public Resource​(@NonNull
                        String displayName)
    • Method Detail

      • isCollidingWith

        public boolean isCollidingWith​(Resource that,
                                       int count)
        Checks the resource collision.
        Parameters:
        count - If we are testing W/W conflict, total # of write counts. For R/W conflict test, this value should be set to Integer.MAX_VALUE.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object