org.apache.tomcat.jni

Class Pool

public class Pool extends Object

Pool

Version: $Revision: 467222 $, $Date: 2006-10-24 05:17:11 +0200 (Tue, 24 Oct 2006) $

Author: Mladen Turk

Method Summary
static ByteBufferalloc(long p, int size)
Allocate a block of memory from a pool
static ByteBuffercalloc(long p, int size)
Allocate a block of memory from a pool and set all of the memory to 0
static voidcleanupForExec()
Run all of the child_cleanups, so that any unnecessary files are closed because we are about to exec a new program
static voidcleanupKill(long pool, long data)
Remove a previously registered cleanup function
static longcleanupRegister(long pool, Object o)
Register a function to be called when a pool is cleared or destroyed
static voidclear(long pool)
Clear all memory in the pool and run all the cleanups.
static longcreate(long parent)
Create a new pool.
static ObjectdataGet(long pool, String key)
Return the data associated with the current pool.
static intdataSet(long pool, String key, Object data)
Set the data associated with the current pool
static voiddestroy(long pool)
Destroy the pool.
static booleanisAncestor(long a, long b)
Determine if pool a is an ancestor of pool b
static voidnoteSubprocess(long a, long proc, int how)
Register a process to be killed when a pool dies.
static longparentGet(long pool)
Get the parent pool of the specified pool.

Method Detail

alloc

public static ByteBuffer alloc(long p, int size)
Allocate a block of memory from a pool

Parameters: p The pool to allocate from size The amount of memory to allocate

Returns: The ByteBuffer with allocated memory

calloc

public static 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 from size The amount of memory to allocate

Returns: The ByteBuffer with allocated memory

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

cleanupKill

public static void cleanupKill(long pool, long data)
Remove a previously registered cleanup function

Parameters: pool The pool remove the cleanup from data The cleanup handler to remove from cleanup

cleanupRegister

public static long cleanupRegister(long pool, Object o)
Register a function to be called when a pool is cleared or destroyed

Parameters: pool The pool register the cleanup with o The object to call when the pool is cleared or destroyed

Returns: The cleanup handler.

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.

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.

dataGet

public static Object dataGet(long pool, String key)
Return the data associated with the current pool.

Parameters: key The key for the data to retrieve pool The current pool.

dataSet

public static int dataSet(long pool, String key, 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 association pool 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 globaly referenced untill the pool is cleared or dataSet is called with the null data.

Returns: APR Status code.

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

isAncestor

public static boolean isAncestor(long a, long b)
Determine if pool a is an ancestor of pool b

Parameters: a The pool to search b The pool to search for

Returns: True if a is an ancestor of b, NULL is considered an ancestor of all pools.

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 lifetime proc The process to register how 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
 

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.

Copyright © 2000-2011 Apache Software Foundation. All Rights Reserved.