Package io.grpc.internal
Class ManagedChannelOrphanWrapper.ManagedChannelReference
java.lang.Object
java.lang.ref.Reference<ManagedChannelOrphanWrapper>
java.lang.ref.WeakReference<ManagedChannelOrphanWrapper>
io.grpc.internal.ManagedChannelOrphanWrapper.ManagedChannelReference
- Enclosing class:
ManagedChannelOrphanWrapper
static final class ManagedChannelOrphanWrapper.ManagedChannelReference
extends WeakReference<ManagedChannelOrphanWrapper>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final String
private final Reference
<RuntimeException> private final String
private static final boolean
private static final RuntimeException
private final ReferenceQueue
<ManagedChannelOrphanWrapper> private final ConcurrentMap
<ManagedChannelOrphanWrapper.ManagedChannelReference, ManagedChannelOrphanWrapper.ManagedChannelReference> private final AtomicBoolean
-
Constructor Summary
ConstructorsConstructorDescriptionManagedChannelReference
(ManagedChannelOrphanWrapper orphanable, ManagedChannel channel, ReferenceQueue<ManagedChannelOrphanWrapper> refqueue, ConcurrentMap<ManagedChannelOrphanWrapper.ManagedChannelReference, ManagedChannelOrphanWrapper.ManagedChannelReference> refs) -
Method Summary
Modifier and TypeMethodDescription(package private) static int
cleanQueue
(ReferenceQueue<ManagedChannelOrphanWrapper> refqueue) void
clear()
This clear() is *not* called automatically by the JVM.private void
private void
Safe to call concurrently.private static RuntimeException
Methods inherited from class java.lang.ref.Reference
enqueue, get, isEnqueued
-
Field Details
-
ALLOCATION_SITE_PROPERTY_NAME
- See Also:
-
ENABLE_ALLOCATION_TRACKING
private static final boolean ENABLE_ALLOCATION_TRACKING -
missingCallSite
-
refqueue
-
refs
-
channelStr
-
allocationSite
-
shutdown
-
-
Constructor Details
-
ManagedChannelReference
ManagedChannelReference(ManagedChannelOrphanWrapper orphanable, ManagedChannel channel, ReferenceQueue<ManagedChannelOrphanWrapper> refqueue, ConcurrentMap<ManagedChannelOrphanWrapper.ManagedChannelReference, ManagedChannelOrphanWrapper.ManagedChannelReference> refs)
-
-
Method Details
-
clear
public void clear()This clear() is *not* called automatically by the JVM. As this is a weak ref, the reference will be cleared automatically by the JVM, but will not be removed fromrefs
. We do it here to avoid this ending up on the reference queue.- Overrides:
clear
in classReference<ManagedChannelOrphanWrapper>
-
clearSafely
private void clearSafely()Safe to call concurrently. -
clearInternal
private void clearInternal() -
missingCallSite
-
cleanQueue
-