From: Yann Ylavic Date: Tue, 6 Feb 2018 23:43:41 +0000 (+0000) Subject: mod_slotmem_shm: follow up tp r1822509. X-Git-Tag: 2.5.0-alpha2-ci-test-only~2893 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f8a7d55ca47f2c405fa4abc67c4636533f7704e;p=thirdparty%2Fapache%2Fhttpd.git mod_slotmem_shm: follow up tp r1822509. 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 --- diff --git a/modules/slotmem/mod_slotmem_shm.c b/modules/slotmem/mod_slotmem_shm.c index 64f776868b7..2986df43919 100644 --- a/modules/slotmem/mod_slotmem_shm.c +++ b/modules/slotmem/mod_slotmem_shm.c @@ -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;