]> Sergey Matveev's repositories - public-inbox.git/commitdiff
favor readline() and print() as functions
authorEric Wong <e@yhbt.net>
Sun, 17 May 2020 19:48:14 +0000 (19:48 +0000)
committerEric Wong <e@yhbt.net>
Tue, 19 May 2020 07:42:48 +0000 (07:42 +0000)
In our inbox-writing code paths, ->getline as an OO method may
be confused with the various definitions of `getline' used by
the PSGI interface.  It's also easier to do: "perldoc -f readline"
than to figure out which class "->getline" belongs to (IO::Handle)
and lookup documentation for that.

->print is less confusing than the "readline" vs "getline"
mismatch, but we can still make it clear we're using a real
file handle and not a mock interface.

Finally, functions are a bit faster than their OO counterparts.

lib/PublicInbox/Import.pm
lib/PublicInbox/SearchIdxShard.pm
lib/PublicInbox/V2Writable.pm
script/public-inbox-convert

index 792570c8f36586daf7f17febd825515518c84676..a901350402c50febdc73ea1afa37a5be1afc9490 100644 (file)
@@ -160,7 +160,7 @@ sub progress {
        my ($self, $msg) = @_;
        return unless $self->{pid};
        print { $self->{out} } "progress $msg\n" or wfail;
-       $self->{in}->getline eq "progress $msg\n" or die
+       readline($self->{in}) eq "progress $msg\n" or die
                "progress $msg not received\n";
        undef;
 }
@@ -554,7 +554,7 @@ sub replace_oids {
                        push @buf, "reset $tmp\n";
                } elsif (/^commit (?:.+)/) {
                        if (@buf) {
-                               $w->print(@buf) or wfail;
+                               print $w @buf or wfail;
                                @buf = ();
                        }
                        push @buf, "commit $tmp\n";
@@ -591,7 +591,7 @@ sub replace_oids {
                                rewrite_commit($self, \@oids, \@buf, $mime);
                                $nreplace++;
                        }
-                       $w->print(@buf, "\n") or wfail;
+                       print $w @buf, "\n" or wfail;
                        @buf = ();
                } elsif ($_ eq "done\n") {
                        $done = 1;
@@ -604,7 +604,7 @@ sub replace_oids {
        }
        close $rd or die "close fast-export failed: $?";
        if (@buf) {
-               $w->print(@buf) or wfail;
+               print $w @buf or wfail;
        }
        die 'done\n not seen from fast-export' unless $done;
        chomp(my $cmt = $self->get_mark(":$mark")) if $nreplace;
index e754b038c54b0b5f4a83cdef61496eb4dcfdf2fd..c1f52d8b884fd7e723275f8e8c259aaf2ace4092 100644 (file)
@@ -53,7 +53,7 @@ sub shard_worker_loop ($$$$$) {
        my ($self, $v2w, $r, $shard, $bnote) = @_;
        $0 = "pi-v2-shard[$shard]";
        $self->begin_txn_lazy;
-       while (my $line = $r->getline) {
+       while (my $line = readline($r)) {
                $v2w->{current_info} = "[$shard] $line";
                if ($line eq "commit\n") {
                        $self->commit_txn_lazy;
index c732b98add3d32c96358a4279e5f065d5ab45449..513e9f230117893ec9f9d7e381bfc05d1baf1a82 100644 (file)
@@ -606,7 +606,7 @@ sub barrier_wait {
        my $bnote = $self->{bnote} or return;
        my $r = $bnote->[0];
        while (scalar keys %$barrier) {
-               defined(my $l = $r->getline) or die "EOF on barrier_wait: $!";
+               defined(my $l = readline($r)) or die "EOF on barrier_wait: $!";
                $l =~ /\Abarrier (\d+)/ or die "bad line on barrier_wait: $l";
                delete $barrier->{$1} or die "bad shard[$1] on barrier wait";
        }
index 4c220b364bf30417c0fd745b663887b3adcc7f4a..7fb15adf69bc2e9db9b3fbf944b45052f7cfd94e 100755 (executable)
@@ -111,12 +111,12 @@ while (<$rd>) {
                $state = 'commit';
        } elsif (/^data ([0-9]+)/) {
                my $len = $1;
-               $w->print($_) or $im->wfail;
+               print $w $_ or $im->wfail;
                while ($len) {
                        my $n = read($rd, my $tmp, $len) or die "read: $!";
                        warn "$n != $len\n" if $n != $len;
                        $len -= $n;
-                       $w->print($tmp) or $im->wfail;
+                       print $w $tmp or $im->wfail;
                }
                next;
        } elsif ($state eq 'commit') {
@@ -124,9 +124,9 @@ while (<$rd>) {
                        my ($mark, $path) = ($1, $2);
                        $D{$path} = $mark;
                        if ($last && $last ne 'm') {
-                               $w->print("D $last\n") or $im->wfail;
+                               print $w "D $last\n" or $im->wfail;
                        }
-                       $w->print("M 100644 :$mark m\n") or $im->wfail;
+                       print $w "M 100644 :$mark m\n" or $im->wfail;
                        $last = 'm';
                        next;
                }
@@ -134,15 +134,15 @@ while (<$rd>) {
                        my $mark = delete $D{$1};
                        defined $mark or die "undeleted path: $1\n";
                        if ($last && $last ne 'd') {
-                               $w->print("D $last\n") or $im->wfail;
+                               print $w "D $last\n" or $im->wfail;
                        }
-                       $w->print("M 100644 :$mark d\n") or $im->wfail;
+                       print $w "M 100644 :$mark d\n" or $im->wfail;
                        $last = 'd';
                        next;
                }
        }
        last if $_ eq "done\n";
-       $w->print($_) or $im->wfail;
+       print $w $_ or $im->wfail;
 }
 $w = $r = undef;
 close $rd or die "close fast-export: $!\n";