Apache2
|
Macros | |
#define | AP_LIST_FLOCK_SERIALIZE ", 'flock:/path/to/file'" |
#define | AP_LIST_FCNTL_SERIALIZE ", 'fcntl:/path/to/file'" |
#define | AP_LIST_SYSVSEM_SERIALIZE ", 'sysvsem'" |
#define | AP_LIST_POSIXSEM_SERIALIZE ", 'posixsem'" |
#define | AP_LIST_PTHREAD_SERIALIZE ", 'pthread'" |
#define | AP_LIST_FILE_SERIALIZE ", 'file:/path/to/file'" |
#define | AP_LIST_SEM_SERIALIZE ", 'sem'" |
#define | AP_ALL_AVAILABLE_MUTEXES_STRING |
#define | AP_AVAILABLE_MUTEXES_STRING |
#define | AP_MUTEX_ALLOW_NONE |
#define | AP_MUTEX_DEFAULT_NONE |
Functions | |
apr_status_t | ap_parse_mutex (const char *arg, apr_pool_t *pool, apr_lockmech_e *mutexmech, const char **mutexfile) |
const char * | ap_set_mutex (cmd_parms *cmd, void *dummy, const char *arg) |
void | ap_mutex_init (apr_pool_t *p) |
apr_status_t | ap_mutex_register (apr_pool_t *pconf, const char *type, const char *default_dir, apr_lockmech_e default_mech, apr_int32_t options) |
apr_status_t | ap_global_mutex_create (apr_global_mutex_t **mutex, const char **name, const char *type, const char *instance_id, server_rec *server, apr_pool_t *pool, apr_int32_t options) |
apr_status_t | ap_proc_mutex_create (apr_proc_mutex_t **mutex, const char **name, const char *type, const char *instance_id, server_rec *server, apr_pool_t *pool, apr_int32_t options) |
void | ap_dump_mutexes (apr_pool_t *p, server_rec *s, apr_file_t *out) |
#define AP_ALL_AVAILABLE_MUTEXES_STRING |
#define AP_AVAILABLE_MUTEXES_STRING |
#define AP_LIST_FCNTL_SERIALIZE ", 'fcntl:/path/to/file'" |
#define AP_LIST_FILE_SERIALIZE ", 'file:/path/to/file'" |
#define AP_LIST_FLOCK_SERIALIZE ", 'flock:/path/to/file'" |
#define AP_LIST_POSIXSEM_SERIALIZE ", 'posixsem'" |
#define AP_LIST_PTHREAD_SERIALIZE ", 'pthread'" |
#define AP_LIST_SEM_SERIALIZE ", 'sem'" |
#define AP_LIST_SYSVSEM_SERIALIZE ", 'sysvsem'" |
#define AP_MUTEX_ALLOW_NONE |
option flags for ap_mutex_register(), ap_global_mutex_create(), and ap_proc_mutex_create()
#define AP_MUTEX_DEFAULT_NONE |
void ap_dump_mutexes | ( | apr_pool_t * | p, |
server_rec * | s, | ||
apr_file_t * | out | ||
) |
apr_status_t ap_global_mutex_create | ( | apr_global_mutex_t ** | mutex, |
const char ** | name, | ||
const char * | type, | ||
const char * | instance_id, | ||
server_rec * | server, | ||
apr_pool_t * | pool, | ||
apr_int32_t | options | ||
) |
Create an APR global mutex that has been registered previously with ap_mutex_register(). Mutex files, permissions, and error logging will be handled internally.
mutex | The memory address where the newly created mutex will be stored. If this mutex is disabled, mutex will be set to NULL on output. (That is allowed only if the AP_MUTEX_ALLOW_NONE flag is passed to ap_mutex_register().) |
name | The generated filename of the created mutex, or NULL if no file was created. Pass NULL if this result is not needed. |
type | The type name of the mutex, matching the type name passed to ap_mutex_register(). |
instance_id | A unique string to be used in the lock filename IFF this mutex type is multi-instance, NULL otherwise. |
server | server_rec of main server |
pool | pool lifetime of the mutex |
options | combination of AP_MUTEX_* constants, or 0 for defaults (currently none are defined for this function) |
void ap_mutex_init | ( | apr_pool_t * | p | ) |
apr_status_t ap_mutex_register | ( | apr_pool_t * | pconf, |
const char * | type, | ||
const char * | default_dir, | ||
apr_lockmech_e | default_mech, | ||
apr_int32_t | options | ||
) |
Register a module's mutex type with core to allow configuration with the Mutex directive. This must be called in the pre_config hook; otherwise, configuration directives referencing this mutex type will be rejected.
The default_dir and default_mech parameters allow a module to set defaults for the lock file directory and mechanism. These could be based on compile-time settings. These aren't required except in special circumstances.
The order of precedence for the choice of mechanism and lock file directory is:
pconf | The pconf pool |
type | The type name of the mutex, used as the basename of the file associated with the mutex, if any. This must be unique among all mutex types (mutex creation accommodates multi-instance mutex types); mod_foo might have mutex types "foo-pipe" and "foo-shm" |
default_dir | Default dir for any lock file required for this lock, to override built-in defaults; should be NULL for most modules, to respect built-in defaults |
default_mech | Default mechanism for this lock, to override built-in defaults; should be APR_LOCK_DEFAULT for most modules, to respect built-in defaults or NULL if there are no defaults for this mutex. |
options | combination of AP_MUTEX_* constants, or 0 for defaults |
apr_status_t ap_parse_mutex | ( | const char * | arg, |
apr_pool_t * | pool, | ||
apr_lockmech_e * | mutexmech, | ||
const char ** | mutexfile | ||
) |
Get Mutex config data and parse it
arg | The mutex config string |
pool | The allocation pool |
mutexmech | The APR mutex locking mechanism |
mutexfile | The lockfile to use as required |
apr_status_t ap_proc_mutex_create | ( | apr_proc_mutex_t ** | mutex, |
const char ** | name, | ||
const char * | type, | ||
const char * | instance_id, | ||
server_rec * | server, | ||
apr_pool_t * | pool, | ||
apr_int32_t | options | ||
) |
Create an APR proc mutex that has been registered previously with ap_mutex_register(). Mutex files, permissions, and error logging will be handled internally.
mutex | The memory address where the newly created mutex will be stored. If this mutex is disabled, mutex will be set to NULL on output. (That is allowed only if the AP_MUTEX_ALLOW_NONE flag is passed to ap_mutex_register().) |
name | The generated filename of the created mutex, or NULL if no file was created. Pass NULL if this result is not needed. |
type | The type name of the mutex, matching the type name passed to ap_mutex_register(). |
instance_id | A unique string to be used in the lock filename IFF this mutex type is multi-instance, NULL otherwise. |
server | server_rec of main server |
pool | pool lifetime of the mutex |
options | combination of AP_MUTEX_* constants, or 0 for defaults (currently none are defined for this function) |
const char* ap_set_mutex | ( | cmd_parms * | cmd, |
void * | dummy, | ||
const char * | arg | ||
) |