Package org.apache.tomcat.jni
Class Pool
- java.lang.Object
-
- org.apache.tomcat.jni.Pool
-
public class Pool extends java.lang.Object
Pool- Author:
- Mladen Turk
-
-
Constructor Summary
Constructors Constructor Description Pool()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.nio.ByteBuffer
alloc(long p, int size)
Allocate a block of memory from a poolstatic java.nio.ByteBuffer
calloc(long p, int size)
Allocate a block of memory from a pool and set all of the memory to 0static void
cleanupForExec()
Run all of the child_cleanups, so that any unnecessary files are closed because we are about to exec a new programstatic void
cleanupKill(long pool, long data)
Remove a previously registered cleanup functionstatic long
cleanupRegister(long pool, java.lang.Object o)
Register a function to be called when a pool is cleared or destroyedstatic void
clear(long pool)
Clear all memory in the pool and run all the cleanups.static long
create(long parent)
Create a new pool.static java.lang.Object
dataGet(long pool, java.lang.String key)
Return the data associated with the current pool.static int
dataSet(long pool, java.lang.String key, java.lang.Object data)
Set the data associated with the current poolstatic void
destroy(long pool)
Destroy the pool.static boolean
isAncestor(long a, long b)
Determine if pool a is an ancestor of pool bstatic void
noteSubprocess(long a, long proc, int how)
Register a process to be killed when a pool dies.static long
parentGet(long pool)
Get the parent pool of the specified pool.
-
-
-
Method Detail
-
create
public static long create(long parent)
Create a new pool.- Parameters:
parent
- The parent pool. If this is 0, the new pool is a root pool. If it is non-zero, the new pool will inherit all of its parent pool's attributes, except the apr_pool_t will be a sub-pool.- Returns:
- The pool we have just created.
-
clear
public static void clear(long pool)
Clear all memory in the pool and run all the cleanups. This also destroys all subpools.- Parameters:
pool
- The pool to clear This does not actually free the memory, it just allows the pool to re-use this memory for the next allocation.
-
destroy
public static void destroy(long pool)
Destroy the pool. This takes similar action as apr_pool_clear() and then frees all the memory. This will actually free the memory- Parameters:
pool
- The pool to destroy
-
parentGet
public static long parentGet(long pool)
Get the parent pool of the specified pool.- Parameters:
pool
- The pool for retrieving the parent pool.- Returns:
- The parent of the given pool.
-
isAncestor
public static boolean isAncestor(long a, long b)
Determine if pool a is an ancestor of pool b- Parameters:
a
- The pool to searchb
- The pool to search for- Returns:
- True if a is an ancestor of b, NULL is considered an ancestor of all pools.
-
cleanupRegister
public static long cleanupRegister(long pool, java.lang.Object o)
Register a function to be called when a pool is cleared or destroyed- Parameters:
pool
- The pool register the cleanup witho
- The object to call when the pool is cleared or destroyed- Returns:
- The cleanup handler.
-
cleanupKill
public static void cleanupKill(long pool, long data)
Remove a previously registered cleanup function- Parameters:
pool
- The pool remove the cleanup fromdata
- The cleanup handler to remove from cleanup
-
noteSubprocess
public static void noteSubprocess(long a, long proc, int how)
Register a process to be killed when a pool dies.- Parameters:
a
- The pool to use to define the processes lifetimeproc
- The process to registerhow
- How to kill the process, one of:APR_KILL_NEVER -- process is never sent any signals APR_KILL_ALWAYS -- process is sent SIGKILL on apr_pool_t cleanup APR_KILL_AFTER_TIMEOUT -- SIGTERM, wait 3 seconds, SIGKILL APR_JUST_WAIT -- wait forever for the process to complete APR_KILL_ONLY_ONCE -- send SIGTERM and then wait
-
alloc
public static java.nio.ByteBuffer alloc(long p, int size)
Allocate a block of memory from a pool- Parameters:
p
- The pool to allocate fromsize
- The amount of memory to allocate- Returns:
- The ByteBuffer with allocated memory
-
calloc
public static java.nio.ByteBuffer calloc(long p, int size)
Allocate a block of memory from a pool and set all of the memory to 0- Parameters:
p
- The pool to allocate fromsize
- The amount of memory to allocate- Returns:
- The ByteBuffer with allocated memory
-
dataSet
public static int dataSet(long pool, java.lang.String key, java.lang.Object data)
Set the data associated with the current pool- Parameters:
data
- The user data associated with the pool.key
- The key to use for associationpool
- The current pool
Warning : The data to be attached to the pool should have a life span at least as long as the pool it is being attached to. Object attached to the pool will be globally referenced until the pool is cleared or dataSet is called with the null data.- Returns:
- APR Status code.
-
dataGet
public static java.lang.Object dataGet(long pool, java.lang.String key)
Return the data associated with the current pool.- Parameters:
key
- The key for the data to retrievepool
- The current pool.- Returns:
- the data
-
cleanupForExec
public static void cleanupForExec()
Run all of the child_cleanups, so that any unnecessary files are closed because we are about to exec a new program
-
-