[PATCH] Improved code readablity of ngx_cache_manager_process_cycle.
Maxim Dounin
mdounin at mdounin.ru
Thu Apr 5 13:34:53 UTC 2018
Hello!
On Thu, Apr 05, 2018 at 02:12:04PM +0300, Ruslan Ermilov wrote:
> On Thu, Apr 05, 2018 at 12:37:19PM +0800, Zexuan Luo wrote:
> > # HG changeset patch
> > # User spacewander <spacewanderlzx at gmail.com>
> > # Date 1522902794 -28800
> > # Thu Apr 05 12:33:14 2018 +0800
> > # Branch ident
> > # Node ID e0834ca20c9c68c4f0728f85efb3651732134ee2
> > # Parent d4cc2edb4ff8391d0c7419e91e6fcc988c510654
> > Improved code readablity of ngx_cache_manager_process_cycle.
> >
> > diff -r d4cc2edb4ff8 -r e0834ca20c9c src/os/unix/ngx_process_cycle.c
> > --- a/src/os/unix/ngx_process_cycle.c Tue Apr 03 17:38:10 2018 +0300
> > +++ b/src/os/unix/ngx_process_cycle.c Thu Apr 05 12:33:14 2018 +0800
> > @@ -1128,7 +1128,7 @@
> > {
> > ngx_cache_manager_ctx_t *ctx = data;
> >
> > - void *ident[4];
> > + u_char ident[offsetof(ngx_connection_t, fd) +
> > sizeof(ngx_socket_t)];
> > ngx_event_t ev;
> >
> > /*
> > @@ -1148,7 +1148,7 @@
> > ev.handler = ctx->handler;
> > ev.data = ident;
> > ev.log = cycle->log;
> > - ident[3] = (void *) -1;
> > + *(ngx_socket_t *)(ident + offsetof(ngx_connection_t, fd)) = -1;
> >
> > ngx_use_accept_mutex = 0;
>
> How's this instead? A similar comment also exists in ngx_resolver.h.
>
> diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
> --- a/src/os/unix/ngx_process_cycle.c
> +++ b/src/os/unix/ngx_process_cycle.c
> @@ -1128,8 +1128,10 @@ ngx_cache_manager_process_cycle(ngx_cycl
> {
> ngx_cache_manager_ctx_t *ctx = data;
>
> - void *ident[4];
> - ngx_event_t ev;
> + /* event ident must be after 3 pointers as in ngx_connection_t */
> + void *ident[4];
> + ngx_event_t ev;
> + ngx_connection_t *c;
>
> /*
> * Set correct process type since closing listening Unix domain socket
> @@ -1144,11 +1146,13 @@ ngx_cache_manager_process_cycle(ngx_cycl
>
> ngx_worker_process_init(cycle, -1);
>
> + c = (ngx_connection_t *) ident;
> + c->fd = (ngx_socket_t) -1;
> +
> ngx_memzero(&ev, sizeof(ngx_event_t));
> ev.handler = ctx->handler;
> - ev.data = ident;
> + ev.data = c;
> ev.log = cycle->log;
> - ident[3] = (void *) -1;
>
> ngx_use_accept_mutex = 0;
Both variants seems to be awful compared to what we have now.
--
Maxim Dounin
http://mdounin.ru/
More information about the nginx-devel
mailing list