From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on gnuweeb.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NO_DNS_FOR_FROM,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 Received: from integral2.. (unknown [36.81.65.188]) by gnuweeb.org (Postfix) with ESMTPSA id 9B9877E254; Fri, 8 Jul 2022 12:10:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gnuweeb.org; s=default; t=1657282259; bh=L8zJSaWSCMtmtLre4Ihoye/tIC9MfDbfjc6q+ux5zWI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=TlsQvI9NjZShFG4t88Av29JDcSyeI/ac19XfmP2+8shge1sf5pSQITWUJ/J2DvuEN Dc40z5kc9Fcwr3U9nr0yuJjzwiouN07EhyZCCUkwK4D8mNEpyeXONwILGWghcpEwTI 0TywzuUlCUCZFfZmxAzDoc4iuXWdnkG8KqgONWPN2eaIz8enPsrf6iuIlFgn45D/6X 2re0Df1dfqCNUt+rxgyA1zA+aDKslqw2oyfzjLtfYYLw9kRIbFN6Uq0yAoBhlIhhOo fEcmo5yusmQxDM/T2SjTOaGqolqQ5sBI8Jd6UbMaA9Z8LUl7LSjAjqHopapucqUXF/ T3IbjNamT2MxQ== From: Ammar Faizi To: GNU/Weeb Mailing List Cc: Ammar Faizi , Alviro Iskandar Setiawan , Arthur Lapz , Fernanda Ma'rouf , Sprite , Yonle Subject: [PATCH gwhttpd 08/14] gwhttpd: Skip interrupt error from `epoll_wait()` Date: Fri, 8 Jul 2022 19:10:19 +0700 Message-Id: <20220708121025.926162-9-ammarfaizi2@gnuweeb.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220708121025.926162-1-ammarfaizi2@gnuweeb.org> References: <20220708121025.926162-1-ammarfaizi2@gnuweeb.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: When the epoll_wait() got -EINTR, we should still continue the program, because it may just be a small interrupt from strace or whatever situation that doesn't need to stop the program. Signed-off-by: Ammar Faizi --- gwhttpd.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gwhttpd.cpp b/gwhttpd.cpp index 73a1d84..bb8dc93 100644 --- a/gwhttpd.cpp +++ b/gwhttpd.cpp @@ -657,9 +657,11 @@ static int _run_server(int epl_fd, struct server_state *state) ret = epoll_wait(epl_fd, events, NR_EPOLL_EVT, 1000); if (unlikely(ret < 0)) { - ret = -errno; + ret = errno; perror("epoll_wait"); - return ret; + if (ret == EINTR) + return 0; + return -ret; } for (i = 0; i < ret; i++) { -- Ammar Faizi