From b36ea35703ac4c634ef27f6d92424737f80d1642 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Lavergne?= Date: Tue, 8 Aug 2023 14:22:55 -0400 Subject: [PATCH] Clarify why we do SIGINT/SIGHUP shenanigans --- src/Tiny_httpd_server.ml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Tiny_httpd_server.ml b/src/Tiny_httpd_server.ml index 6160d14b..31ca7edf 100644 --- a/src/Tiny_httpd_server.ml +++ b/src/Tiny_httpd_server.ml @@ -956,6 +956,8 @@ module Unix_tcp_server_ = struct try let client_sock, _ = Unix.accept sock in Unix.setsockopt client_sock Unix.TCP_NODELAY true; + (* Block INT/HUP while cloning to avoid children handling them. + When thread gets them, our Unix.accept raises neatly. *) ignore Unix.(sigprocmask SIG_BLOCK Sys.[ sigint; sighup ]); self.new_thread (fun () -> try