From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: X-Spam-Status: No, score=-4.2 required=3.0 tests=ALL_TRUSTED,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id 311681F61D for ; Mon, 1 Aug 2022 21:24:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=80x24.org; s=selector1; t=1659389088; bh=/LurjK+ZmTjzygzZGe6bUOU0a2egKgLmGlsDOuyiAkQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=G5asutCoAyRTtgFRIVtdGjD1jRf4FN2RW3fVOmecPiPOyZfSJzc4wMztOa5oaW5Z8 5px0buYQic6FTHEhMOffhIbN5nHpxtaQI+OK22R4dyc3fVrB4/sxDx2ofnBx410589 W9My0h6gGKJ7GUx1rt074iG40Q72q6Ow4WMvyook= From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 6/6] daemon: share FDs for identical log paths Date: Mon, 1 Aug 2022 21:24:47 +0000 Message-Id: <20220801212447.270000-7-e@80x24.org> In-Reply-To: <20220801212447.270000-1-e@80x24.org> References: <20220801212447.270000-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: We rely on the %logs hash for SIGUSR1 log reopening. Without this sharing, some FDs would be hidden inside its respective {HTTP,IMAP,POP3}D object and not reopened on USR2 --- lib/PublicInbox/Daemon.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/PublicInbox/Daemon.pm b/lib/PublicInbox/Daemon.pm index ead5afc0..20b07b83 100644 --- a/lib/PublicInbox/Daemon.pm +++ b/lib/PublicInbox/Daemon.pm @@ -104,6 +104,7 @@ sub open_log_path ($$) { # my ($fh, $path) = @_; # $_[0] is modified open $_[0], '>>', $_[1] or die "open(>> $_[1]): $!"; $_[0]->autoflush(1); do_chown($_[1]); + $_[0]; } sub load_mod ($;$$) { @@ -141,8 +142,7 @@ sub load_mod ($;$$) { die "multiple $f= options specified\n" if @$p > 1; check_absolute("$f=", $p->[0]) if $daemonize; $p = File::Spec->canonpath($p->[0]); - open_log_path(my $fh, $p); - $tlsd->{$f} = $logs{$p} = $fh; + $tlsd->{$f} = $logs{$p} //= open_log_path(my $fh, $p); warn "# $scheme://$addr $f=$p\n"; } \%xn;