• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • mod_slotmem_shm

    描述:Slot-based 共享 memory 提供者。
    状态:延期
    模块标识符:slotmem_shm_module
    源文件:mod_slotmem_shm.c

    摘要

    mod_slotmem_shm是一个 memory 提供程序,它提供对共享 memory 段的创建和访问,其中数据集在“槽”中组织。

    每次重启都清除并清除所有共享的 memory,无论是否优雅。数据本身在createattach calls 中name参数标注的文件中存储和恢复。如果未使用绝对路径指定,则将相对于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)
    

    上篇:mod_slotmem_plain

    下篇:mod_so