Модуль Apache mod_slotmem_shm
| Описание: | Поставщик общей памяти на основе слотов. |
|---|---|
| Статус: | Расширение |
| Идентификатор модуля: | slotmem_shm_module |
| Файл исходного кода: | mod_slotmem_shm.c |
Краткое описание
mod_slotmem_shm — это поставщик памяти, который обеспечивает создание и доступ к сегменту общей памяти, в котором наборы данных организованы в «слоты».
Вся общая память очищается и очищается при каждом перезапуске, будь то плавный или неплановый. Данные сами хранятся и восстанавливаются в файле, указанном параметром name в вызовах create и attach. Если не указан абсолютный путь, файл будет создан относительно пути, указанного директивой DefaultRuntimeDir.
mod_slotmem_shm предоставляет следующие функции API:
/* call the callback on all worker slots */
apr_status_t doall(ap_slotmem_instance_t *s, ap_slotmem_callback_fn_t *func, void *data, apr_pool_t *pool)
/* create a new slotmem with each item size is item_size. 'name' is used to generate a filename for the persistent
store of the shared memory if configured. Values are:
"none" - Anonymous shared memory and no persistent store
"file-name" - [DefaultRuntimeDir]/file-name
"/absolute-file-name" - Absolute file name */
apr_status_t create(ap_slotmem_instance_t **new, const char *name, apr_size_t item_size, unsigned int item_num, ap_slotmem_type_t type, apr_pool_t *pool)
/* attach to an existing slotmem. See 'create()' for description of 'name' parameter */
apr_status_t attach(ap_slotmem_instance_t **new, const char *name, apr_size_t *item_size, unsigned int *item_num, apr_pool_t *pool)
/* get the direct pointer to the memory associated with this worker slot */
apr_status_t dptr(ap_slotmem_instance_t *s, unsigned int item_id, void **mem)
/* get/read the memory from this slot to dest */
apr_status_t get(ap_slotmem_instance_t *s, unsigned int item_id, unsigned char *dest, apr_size_t dest_len)
/* put/write the data from src to this slot */
apr_status_t put(ap_slotmem_instance_t *slot, unsigned int item_id, unsigned char *src, apr_size_t src_len)
/* return the total number of slots in the segment */
unsigned int num_slots(ap_slotmem_instance_t *s)
/* return the total data size, in bytes, of a slot in the segment */
apr_size_t slot_size(ap_slotmem_instance_t *s)
/* grab or allocate the first free slot and mark as in-use (does not do any data copying) */
apr_status_t grab(ap_slotmem_instance_t *s, unsigned int *item_id)
/* forced grab or allocate the specified slot and mark as in-use (does not do any data copying) */
apr_status_t fgrab(ap_slotmem_instance_t *s, unsigned int item_id)
/* release or free a slot and mark as not in-use (does not do any data copying) */
apr_status_t release(ap_slotmem_instance_t *s, unsigned int item_id)
© 2018 The Apache Software Foundation
Licensed under the Apache License, Version 2.0.
https://httpd.apache.org/docs/2.4/en/mod/mod_slotmem_shm.html