]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/SharedKV.pm
syscall: FS_IOC_*FLAGS: define on per-architecture basis
[public-inbox.git] / lib / PublicInbox / SharedKV.pm
index 27407f8357131ef24f6388a934afae734a312528..95a3cb147d2973fa3c91e84593936c487d9723c6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2020-2021 all contributors <meta@public-inbox.org>
+# Copyright (C) all contributors <meta@public-inbox.org>
 # License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
 
 # fork()-friendly key-value store.  Will be used for making
@@ -15,7 +15,7 @@ use File::Path qw(rmtree make_path);
 
 sub dbh {
        my ($self, $lock) = @_;
-       $self->{dbh} //= do {
+       $self->{dbh} // do {
                my $f = $self->{filename};
                $lock //= $self->lock_for_scope_fast;
                my $dbh = DBI->connect("dbi:SQLite:dbname=$f", '', '', {
@@ -36,7 +36,7 @@ CREATE TABLE IF NOT EXISTS kv (
        UNIQUE (k)
 )
 
-               $dbh;
+               $self->{dbh} = $dbh;
        }
 }
 
@@ -49,9 +49,9 @@ sub new {
        my $f = $self->{filename} = "$dir/$base.sqlite3";
        $self->{lock_path} = $opt->{lock_path} // "$dir/$base.flock";
        unless (-s $f) {
-               PublicInbox::Spawn::nodatacow_dir($dir); # for journal/shm/wal
+               require PublicInbox::Syscall;
+               PublicInbox::Syscall::nodatacow_dir($dir); # for journal/shm/wal
                open my $fh, '+>>', $f or die "failed to open $f: $!";
-               PublicInbox::Spawn::nodatacow_fd(fileno($fh));
        }
        $self;
 }