equal
deleted
inserted
replaced
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 */ |