Mercurial > hg > nginx
comparison src/os/unix/ngx_file_aio_read.c @ 7448:7f035fd1ec7b
Fixed portability issues with union sigval.
AIO support in nginx was originally developed against FreeBSD versions 4-6,
where the sival_ptr field was named as sigval_ptr (seemingly by mistake[1]),
which made nginx use the only name available then. The standard-complaint
name was restored in 2005 (first appeared in FreeBSD 7.0, 2008), retaining
compatibility with previous versions[2][3]. In DragonFly, similar changes
were committed in 2009[4], with backward compatibility recently removed[5].
The change switches to the standard name, retaining compatibility with old
FreeBSD versions.
[1] https://svnweb.freebsd.org/changeset/base/48621
[2] https://svnweb.freebsd.org/changeset/base/152029
[3] https://svnweb.freebsd.org/changeset/base/174003
[4] https://gitweb.dragonflybsd.org/dragonfly.git/commit/3693401
[5] https://gitweb.dragonflybsd.org/dragonfly.git/commit/7875042
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 28 Jan 2019 14:33:31 +0000 |
parents | f01ab2dbcfdc |
children |
comparison
equal
deleted
inserted
replaced
7447:f56a4c91b303 | 7448:7f035fd1ec7b |
---|---|
108 aio->aiocb.aio_buf = buf; | 108 aio->aiocb.aio_buf = buf; |
109 aio->aiocb.aio_nbytes = size; | 109 aio->aiocb.aio_nbytes = size; |
110 #if (NGX_HAVE_KQUEUE) | 110 #if (NGX_HAVE_KQUEUE) |
111 aio->aiocb.aio_sigevent.sigev_notify_kqueue = ngx_kqueue; | 111 aio->aiocb.aio_sigevent.sigev_notify_kqueue = ngx_kqueue; |
112 aio->aiocb.aio_sigevent.sigev_notify = SIGEV_KEVENT; | 112 aio->aiocb.aio_sigevent.sigev_notify = SIGEV_KEVENT; |
113 aio->aiocb.aio_sigevent.sigev_value.sigval_ptr = ev; | 113 aio->aiocb.aio_sigevent.sigev_value.sival_ptr = ev; |
114 #endif | 114 #endif |
115 ev->handler = ngx_file_aio_event_handler; | 115 ev->handler = ngx_file_aio_event_handler; |
116 | 116 |
117 n = aio_read(&aio->aiocb); | 117 n = aio_read(&aio->aiocb); |
118 | 118 |