From 4295ce99d8371535c22792870f93ac2d3d0816d3 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Mon, 14 Jun 2021 11:12:58 -0400 Subject: [PATCH] Add concurrency in Tidy remap phase. Arvados-DCO-1.1-Signed-off-by: Tom Clegg --- tilelib.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/tilelib.go b/tilelib.go index fbdbe6a8e4..0606fc3092 100644 --- a/tilelib.go +++ b/tilelib.go @@ -594,18 +594,30 @@ func (tilelib *tileLibrary) Tidy() { // Apply remap to genomes and reference sequences, so they // refer to the same tile variants using the changed IDs. log.Print("Tidy: apply remap") + var wg sync.WaitGroup for _, cg := range tilelib.compactGenomes { - for idx, variant := range cg { - cg[idx] = remap[tagID(idx/2)][variant] - } + cg := cg + wg.Add(1) + go func() { + defer wg.Done() + for idx, variant := range cg { + cg[idx] = remap[tagID(idx/2)][variant] + } + }() } for _, refcs := range tilelib.refseqs { for _, refseq := range refcs { - for i, tv := range refseq { - refseq[i].Variant = remap[tv.Tag][tv.Variant] - } + refseq := refseq + wg.Add(1) + go func() { + defer wg.Done() + for i, tv := range refseq { + refseq[i].Variant = remap[tv.Tag][tv.Variant] + } + }() } } + wg.Wait() log.Print("Tidy: done") } -- 2.39.5