Use a simple 'open' for fetch_block (freeing up an extra filehandle). refs #2325...
authorTim Pierce <twp@curoverse.com>
Thu, 3 Apr 2014 19:25:35 +0000 (15:25 -0400)
committerTim Pierce <twp@curoverse.com>
Thu, 3 Apr 2014 19:25:35 +0000 (15:25 -0400)
sdk/cli/bin/crunch-job

index e81628cc2b3d7087ea8c50b1d546f298064c9ba9..2f8623ba66490f4cf930714473b43a05b4e3215f 100755 (executable)
@@ -1061,11 +1061,12 @@ sub process_stderr
 sub fetch_block
 {
   my $hash = shift;
-  my ($child_out, $child_in, $output_block);
+  my ($child_out, $output_block);
 
-  my $pid = open2($child_out, $child_in, 'arv', 'keep', 'get', $hash);
-  sysread($child_out, $output_block, 64 * 1024 * 1024);
-  waitpid($pid, 0);
+  my $cmd = "arv keep get \Q$hash\E";
+  open($keep, '-|', $cmd) or die "fetch_block: $cmd: $!"
+  sysread($keep, $output_block, 64 * 1024 * 1024);
+  close $keep;
   return $output_block;
 }