Simplify dbh_do invocation, and only alias @_ when needed
[dbsrgits/DBIx-Class.git] / lib / DBIx / Class / Storage.pm
index 6e17e9e..6b88d28 100644 (file)
@@ -180,7 +180,10 @@ sub txn_do {
   DBIx::Class::Storage::BlockRunner->new(
     storage => $self,
     run_code => $coderef,
-    run_args => \@_, # take a ref instead of a copy, to preserve coderef @_ aliasing semantics
+    run_args => @_
+      ? \@_   # take a ref instead of a copy, to preserve @_ aliasing
+      : []    # semantics within the coderef, but only if needed
+    ,         # (pseudoforking doesn't like this trick much)
     wrap_txn => 1,
     retry_handler => sub { ! ( $_[0]->retried_count or $_[0]->storage->connected ) },
   )->run;