stat(2) may fail and set `$!', too, so we must stash it, first.
---
 lib/PublicInbox/TestCommon.pm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/PublicInbox/TestCommon.pm b/lib/PublicInbox/TestCommon.pm
index 5807105a..ed28ac48 100644
--- a/lib/PublicInbox/TestCommon.pm
+++ b/lib/PublicInbox/TestCommon.pm
@@ -709,9 +709,9 @@ sub create_inbox ($$;@) {
        my ($db) = (PublicInbox::Import::default_branch() =~ m!([^/]+)\z!);
        my $dir = "t/data-gen/$base.$ident-$db";
        my $new = !-d $dir;
-       if ($new) {
-               mkdir $dir; # may race
-               -d $dir or BAIL_OUT "$dir could not be created: $!";
+       if ($new && !mkdir($dir)) {
+               my $err = $!;
+               -d $dir or xbail "mkdir($dir): $err";
        }
        my $lk = bless { lock_path => "$dir/creat.lock" }, 'PublicInbox::Lock';
        $opt{inboxdir} = File::Spec->rel2abs($dir);

Reply via email to