On Tue, Jan 22, 2019 at 10:54 PM Maxim Dounin <mdou...@mdounin.ru> wrote: > This needs to be extended with some background information - > notably why it used to be sigval_ptr, and why to switch to > sival_ptr.
I am not sure why it used to be sigval_ptr; seems to be a miss name in FreeBSD. And the code seems to assume having KQUEUE == having sigval_ptr. As about why the switching: - It's POSIX standard. - It was noticed recently in DragonFly, since we removed this compat field (sigval_ptr), since after scanning the source code in ports system, nginx seems to be the only one using sigval_ptr. Thanks, sephe > > > > > diff --git a/src/os/unix/ngx_file_aio_read.c > > b/src/os/unix/ngx_file_aio_read.c > > --- a/src/os/unix/ngx_file_aio_read.c > > +++ b/src/os/unix/ngx_file_aio_read.c > > @@ -110,7 +110,7 @@ ngx_file_aio_read(ngx_file_t *file, u_ch > > #if (NGX_HAVE_KQUEUE) > > aio->aiocb.aio_sigevent.sigev_notify_kqueue = ngx_kqueue; > > aio->aiocb.aio_sigevent.sigev_notify = SIGEV_KEVENT; > > - aio->aiocb.aio_sigevent.sigev_value.sigval_ptr = ev; > > + aio->aiocb.aio_sigevent.sigev_value.sival_ptr = ev; > > #endif > > ev->handler = ngx_file_aio_event_handler; > > > > diff --git a/src/os/unix/ngx_freebsd_config.h > > b/src/os/unix/ngx_freebsd_config.h > > --- a/src/os/unix/ngx_freebsd_config.h > > +++ b/src/os/unix/ngx_freebsd_config.h > > @@ -91,6 +91,10 @@ > > #if (NGX_HAVE_FILE_AIO) > > #include <aio.h> > > typedef struct aiocb ngx_aiocb_t; > > + > > +#if (__FreeBSD_version < 700005 && !defined __DragonFly__) > > +#define sival_ptr sigval_ptr > > +#endif > > #endif > > > > > > Minor style nits: > > diff --git a/src/os/unix/ngx_freebsd_config.h > b/src/os/unix/ngx_freebsd_config.h > --- a/src/os/unix/ngx_freebsd_config.h > +++ b/src/os/unix/ngx_freebsd_config.h > @@ -89,12 +89,14 @@ > > > #if (NGX_HAVE_FILE_AIO) > + > #include <aio.h> > typedef struct aiocb ngx_aiocb_t; > > #if (__FreeBSD_version < 700005 && !defined __DragonFly__) > -#define sival_ptr sigval_ptr > +#define sival_ptr sigval_ptr > #endif > + > #endif > > > > # HG changeset patch > > # User Sergey Kandaurov <pluk...@nginx.com> > > # Date 1547736673 0 > > # Thu Jan 17 14:51:13 2019 +0000 > > # Node ID c66911fc9924a60bb5d691ca00bc2fb1c3032866 > > # Parent baab2b35e8cc79cfdf9924d1752348e97c1da13e > > Removed --test-build-eventport workaround for old FreeBSD versions. > > > > diff --git a/src/event/modules/ngx_eventport_module.c > > b/src/event/modules/ngx_eventport_module.c > > --- a/src/event/modules/ngx_eventport_module.c > > +++ b/src/event/modules/ngx_eventport_module.c > > @@ -250,9 +250,7 @@ ngx_eventport_init(ngx_cycle_t *cycle, n > > > > ngx_memzero(&sev, sizeof(struct sigevent)); > > sev.sigev_notify = SIGEV_PORT; > > -#if !(NGX_TEST_BUILD_EVENTPORT) > > sev.sigev_value.sival_ptr = &pn; > > -#endif > > > > if (timer_create(CLOCK_REALTIME, &sev, &event_timer) == -1) { > > ngx_log_error(NGX_LOG_EMERG, cycle->log, ngx_errno, > > Looks fine. > > -- > Maxim Dounin > http://mdounin.ru/ > _______________________________________________ > nginx-devel mailing list > nginx-devel@nginx.org > http://mailman.nginx.org/mailman/listinfo/nginx-devel -- Tomorrow Will Never Die _______________________________________________ nginx-devel mailing list nginx-devel@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-devel