]> granicus.if.org Git - apache/commitdiff
mod_slotmem_shm: follow up tp r1822509.
authorYann Ylavic <ylavic@apache.org>
Tue, 6 Feb 2018 23:43:41 +0000 (23:43 +0000)
committerYann Ylavic <ylavic@apache.org>
Tue, 6 Feb 2018 23:43:41 +0000 (23:43 +0000)
Complete layout of SHM and persited file (ascii art).
Simplify an "if" condition, no functional change.

[Reverted by r1831868]

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1823416 13f79535-47bb-0310-9956-ffa450edef68

modules/slotmem/mod_slotmem_shm.c

index 64f776868b7f6d561c3892ba31f9c36dbf6cf1c5..2986df439190ae50620dd87d4fca179fdba52627 100644 (file)
@@ -56,13 +56,19 @@ struct ap_slotmem_instance_t {
 };
 
 /*
- * Memory layout:
- *     sharedslotdesc_t | num_free | slots | isuse array |
- *                      ^          ^
- *                      |          . base
- *                      . persist (also num_free)
+ * Layout for SHM and persited file :
+ *
+ *   +-------------------------------------------------------------+~>
+ *   | desc | num_free | base (slots) | inuse (array) | md5 | desc | compat..
+ *   +------+-----------------------------------------+------------+~>
+ *   ^      ^                                         ^    \ /     ^   :
+ *   |______|_____________ SHM (mem->@) ______________|     | _____|__/
+ *          |                                               |/     |
+ *          |                                         ^     v      |
+ *          |_____________________ File (mem->persist +  [meta]) __|
  */
 
+
 /* global pool and list of slotmem we are handling */
 static struct ap_slotmem_instance_t *globallistmem = NULL,
                                    **retained_globallistmem = NULL;
@@ -351,8 +357,7 @@ static apr_status_t slotmem_doall(ap_slotmem_instance_t *mem,
     ptr = (char *)mem->base;
     inuse = mem->inuse;
     for (i = 0; i < mem->desc->num; i++, inuse++) {
-        if (!AP_SLOTMEM_IS_PREGRAB(mem) ||
-           (AP_SLOTMEM_IS_PREGRAB(mem) && *inuse)) {
+        if (!AP_SLOTMEM_IS_PREGRAB(mem) || *inuse) {
             retval = func((void *) ptr, data, pool);
             if (retval != APR_SUCCESS)
                 break;