Package com.kenai.jffi
Class ClosurePool
- java.lang.Object
-
- com.kenai.jffi.ClosurePool
-
public final class ClosurePool extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classClosurePool.HandleManages the lifecycle of a native closure.private static classClosurePool.Magazineprivate static classClosurePool.MagazineHolder(package private) static classClosurePool.ProxyThis is a proxy passed to the native code, to be called by the native trampoline code.
-
Field Summary
Fields Modifier and Type Field Description private CallContextcallContextprivate java.util.concurrent.ConcurrentLinkedQueue<ClosurePool.Handle>freeQueueprivate java.util.Set<ClosurePool.Magazine>magazinesprivate static ClosureNULL_CLOSUREprivate java.util.concurrent.ConcurrentLinkedQueue<ClosurePool.Handle>partialQueue
-
Constructor Summary
Constructors Constructor Description ClosurePool(CallContext callContext)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private ClosurePool.HandleallocateNewHandle()Closure.HandlenewClosureHandle(Closure closure)(package private) voidrecycle(ClosurePool.Magazine magazine)(package private) voidrecycle(ClosurePool.Magazine.Slot slot, ClosurePool.MagazineHolder holder)private voiduseMagazine(ClosurePool.Magazine m)
-
-
-
Field Detail
-
magazines
private final java.util.Set<ClosurePool.Magazine> magazines
-
freeQueue
private final java.util.concurrent.ConcurrentLinkedQueue<ClosurePool.Handle> freeQueue
-
partialQueue
private final java.util.concurrent.ConcurrentLinkedQueue<ClosurePool.Handle> partialQueue
-
callContext
private final CallContext callContext
-
NULL_CLOSURE
private static final Closure NULL_CLOSURE
-
-
Constructor Detail
-
ClosurePool
ClosurePool(CallContext callContext)
-
-
Method Detail
-
recycle
void recycle(ClosurePool.Magazine magazine)
-
recycle
void recycle(ClosurePool.Magazine.Slot slot, ClosurePool.MagazineHolder holder)
-
useMagazine
private void useMagazine(ClosurePool.Magazine m)
-
newClosureHandle
public Closure.Handle newClosureHandle(Closure closure)
-
allocateNewHandle
private ClosurePool.Handle allocateNewHandle()
-
-