public final class ClosurePool
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
ClosurePool.Handle
Manages the lifecycle of a native closure.
|
private static class |
ClosurePool.Magazine |
private static class |
ClosurePool.MagazineHolder |
(package private) static class |
ClosurePool.Proxy
This is a proxy passed to the native code, to be called by the
native trampoline code.
|
Modifier and Type | Field and Description |
---|---|
private CallContext |
callContext |
private java.util.concurrent.ConcurrentLinkedQueue<ClosurePool.Handle> |
freeQueue |
private java.util.Set<ClosurePool.Magazine> |
magazines |
private static Closure |
NULL_CLOSURE |
private java.util.concurrent.ConcurrentLinkedQueue<ClosurePool.Handle> |
partialQueue |
Constructor and Description |
---|
ClosurePool(CallContext callContext) |
Modifier and Type | Method and Description |
---|---|
private ClosurePool.Handle |
allocateNewHandle() |
Closure.Handle |
newClosureHandle(Closure closure) |
(package private) void |
recycle(ClosurePool.Magazine.Slot slot,
ClosurePool.MagazineHolder holder) |
(package private) void |
recycle(ClosurePool.Magazine magazine) |
private void |
useMagazine(ClosurePool.Magazine m) |
private final java.util.Set<ClosurePool.Magazine> magazines
private final java.util.concurrent.ConcurrentLinkedQueue<ClosurePool.Handle> freeQueue
private final java.util.concurrent.ConcurrentLinkedQueue<ClosurePool.Handle> partialQueue
private final CallContext callContext
private static final Closure NULL_CLOSURE
ClosurePool(CallContext callContext)
void recycle(ClosurePool.Magazine magazine)
void recycle(ClosurePool.Magazine.Slot slot, ClosurePool.MagazineHolder holder)
private void useMagazine(ClosurePool.Magazine m)
public Closure.Handle newClosureHandle(Closure closure)
private ClosurePool.Handle allocateNewHandle()