- eval {
- if (defined $initiator_tempdir) {
- rmtree $initiator_tempdir;
- mkdir $initiator_tempdir, 0700 or die "$initiator_tempdir: $!";
- $i_tmp = $initiator_tempdir;
- } else {
- $i_tmp = tempdir();
- }
- my $pid = open2(\*RO, \*RI, @cmd);
- changedir $i_tmp;
- initiator_expect { m/^dgit-remote-push-ready/ };
- for (;;) {
- my ($icmd,$iargs) = initiator_expect {
- m/^(\S+)(?: (.*))?$/;
- ($1,$2);
- };
- i_method "i_resp", $icmd, $iargs;
- }
- };
- i_cleanup();
- die $@;
+
+ if (defined $initiator_tempdir) {
+ rmtree $initiator_tempdir;
+ mkdir $initiator_tempdir, 0700 or die "$initiator_tempdir: $!";
+ $i_tmp = $initiator_tempdir;
+ } else {
+ $i_tmp = tempdir();
+ }
+ $i_child_pid = open2(\*RO, \*RI, @cmd);
+ changedir $i_tmp;
+ initiator_expect { m/^dgit-remote-push-ready/ };
+ for (;;) {
+ my ($icmd,$iargs) = initiator_expect {
+ m/^(\S+)(?: (.*))?$/;
+ ($1,$2);
+ };
+ i_method "i_resp", $icmd, $iargs;
+ }