When HAProxy is complied without threads, gcc throws following warnings:
src/ev_epoll.c:222:3: warning: array subscript is outside array bounds [-Warray-bounds]
...
src/ev_epoll.c:199:11: warning: array subscript is outside array bounds [-Warray-bounds]
...
Of course, this is not a bug. In such case, tid is always equal to 0. But to
avoid the noise, a check on MAX_THREADS in "if (tid)" lines makes gcc happy.
This patch should be backported in 1.8 with the commit
d9e7e36c ("BUG/MEDIUM:
epoll/threads: use one epoll_fd per thread").
if (epoll_events == NULL)
goto fail_alloc;
- if (tid) {
+ if (MAX_THREADS > 1 && tid) {
epoll_fd[tid] = epoll_create(global.maxsock + 1);
if (epoll_fd[tid] < 0)
goto fail_fd;
static void deinit_epoll_per_thread()
{
- if (tid)
+ if (MAX_THREADS > 1 && tid)
close(epoll_fd[tid]);
free(epoll_events);