Use buffered writer to avoid overwhelming arv-mount.
authorTom Clegg <tom@tomclegg.ca>
Wed, 25 Nov 2020 20:50:16 +0000 (15:50 -0500)
committerTom Clegg <tom@tomclegg.ca>
Wed, 25 Nov 2020 20:50:16 +0000 (15:50 -0500)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tom@tomclegg.ca>

vcf2fasta.go

index 98b285e0ed1dafb4dee7236d1af338a4f082937d..08eedf9446817a5d7afa8a0920c05fe86f28e530 100644 (file)
@@ -236,7 +236,8 @@ func (cmd *vcf2fasta) vcf2fasta(infile string, phase int) error {
                return fmt.Errorf("error opening output file: %s", err)
        }
        defer outf.Close()
-       gzipw := gzip.NewWriter(outf)
+       bufw := bufio.NewWriterSize(outf, 8*1024*1024)
+       gzipw := gzip.NewWriter(bufw)
        defer gzipw.Close()
 
        var maskfifo string // filename of mask fifo if we're running bedtools, otherwise ""
@@ -419,11 +420,17 @@ func (cmd *vcf2fasta) vcf2fasta(infile string, phase int) error {
                        errs <- fmt.Errorf("bcftools consensus: %s", err)
                        return
                }
+               log.Printf("exited %v", consensus.Args)
                err = gzipw.Close()
                if err != nil {
                        errs <- err
                        return
                }
+               err = bufw.Flush()
+               if err != nil {
+                       errs <- err
+                       return
+               }
                errs <- outf.Close()
        }()