jdk/src/java.base/share/classes/java/lang/ref/Cleaner.java
changeset 36435 0408881ad616
parent 34942 4b462ee18ed9
child 44844 b2b4d98404ba
equal deleted inserted replaced
36434:3fd8dee1b158 36435:0408881ad616
    23  * questions.
    23  * questions.
    24  */
    24  */
    25 
    25 
    26 package java.lang.ref;
    26 package java.lang.ref;
    27 
    27 
       
    28 import jdk.internal.ref.CleanerImpl;
       
    29 
    28 import java.util.Objects;
    30 import java.util.Objects;
    29 import java.util.concurrent.ThreadFactory;
    31 import java.util.concurrent.ThreadFactory;
    30 
    32 import java.util.function.Function;
    31 import jdk.internal.ref.CleanerImpl;
       
    32 
    33 
    33 /**
    34 /**
    34  * {@code Cleaner} manages a set of object references and corresponding cleaning actions.
    35  * {@code Cleaner} manages a set of object references and corresponding cleaning actions.
    35  * <p>
    36  * <p>
    36  * Cleaning actions are {@link #register(Object object, Runnable action) registered}
    37  * Cleaning actions are {@link #register(Object object, Runnable action) registered}
   133      * The Cleaner implementation.
   134      * The Cleaner implementation.
   134      */
   135      */
   135     final CleanerImpl impl;
   136     final CleanerImpl impl;
   136 
   137 
   137     static {
   138     static {
   138         CleanerImpl.setCleanerImplAccess((Cleaner c) -> c.impl);
   139         CleanerImpl.setCleanerImplAccess(new Function<Cleaner, CleanerImpl>() {
       
   140             @Override
       
   141             public CleanerImpl apply(Cleaner cleaner) {
       
   142                 return cleaner.impl;
       
   143             }
       
   144         });
   139     }
   145     }
   140 
   146 
   141     /**
   147     /**
   142      * Construct a Cleaner implementation and start it.
   148      * Construct a Cleaner implementation and start it.
   143      */
   149      */