On Fri, Oct 16, 2015 at 10:02 AM, Yann Ylavic <ylavic....@gmail.com> wrote:
>
> We should do something like the following patch:
>
> Index: server/scoreboard.c
> ===================================================================
> --- server/scoreboard.c    (revision 1708095)
> +++ server/scoreboard.c    (working copy)
> @@ -129,14 +129,19 @@ static apr_status_t ap_cleanup_shared_mem(void *d)
>      return APR_SUCCESS;
>  }
>
> +#define SIZE_OF_scoreboard    APR_ALIGN_DEFAULT(sizeof(scoreboard))
> +#define SIZE_OF_global_score  APR_ALIGN_DEFAULT(sizeof(global_score))
> +#define SIZE_OF_process_score APR_ALIGN_DEFAULT(sizeof(process_score))
> +#define SIZE_OF_worker_score  APR_ALIGN_DEFAULT(sizeof(worker_score))

Maybe the following would be more correct:

+#define SCOREBOARD_ALIGN(size) APR_ALIGN((size),sizeof(void *))
+#define SIZE_OF_scoreboard     SCOREBOARD_ALIGN(sizeof(scoreboard))
+#define SIZE_OF_global_score   SCOREBOARD_ALIGN(sizeof(global_score))
+#define SIZE_OF_process_score  SCOREBOARD_ALIGN(sizeof(process_score))
+#define SIZE_OF_worker_score   SCOREBOARD_ALIGN(sizeof(worker_score))

since APR_ALIGN_DEFAULT seems to align to 8 bytes whatever the
platform requires...

Maybe some APR_ALIGN_NATIVE macro is missing in APR, like:
#define APR_ALIGN_NATIVE(size) APR_ALIGN((size), APR_SIZEOF_VOIDP)
but that's another story :)

Reply via email to