From 212578b82ad3cb28b2d18f36c656be56a27fd5bc Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Tue, 12 Oct 2021 11:47:02 +0000 Subject: msgmap: share most of check_inodes w/ over We still need to account for msgmap being open all the time and not having separate read-only vs. read-write packages. --- lib/PublicInbox/Msgmap.pm | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) (limited to 'lib') diff --git a/lib/PublicInbox/Msgmap.pm b/lib/PublicInbox/Msgmap.pm index de9fd989..978730e2 100644 --- a/lib/PublicInbox/Msgmap.pm +++ b/lib/PublicInbox/Msgmap.pm @@ -257,21 +257,10 @@ sub skip_artnum { sub check_inodes { my ($self) = @_; - # no filename if in-:memory: - my $f = $self->{dbh}->sqlite_db_filename // return; - if (my @st = stat($f)) { # did st_dev, st_ino change? - my $st = pack('dd', $st[0], $st[1]); - if ($st ne ($self->{st} // $st)) { - my $tmp = eval { ref($self)->new_file($f) }; - if ($@) { - warn "E: DBI->connect($f): $@\n"; - } else { - %$self = %$tmp; - } - } - } else { - warn "W: stat $f: $!\n"; - } + $self->{dbh} // return; + my $rw = !$self->{dbh}->{ReadOnly}; + PublicInbox::Over::check_inodes($self); + $self->{dbh} //= PublicInbox::Over::dbh_new($self, !$rw); } 1; -- cgit v1.2.3-24-ge0c7