build: make Builder.Finish idempotent This will let it be run as a deferred cleanup operation. Change-Id: I82175f396e2bd781c287c58ee67eba3c17a8f5b5
diff --git a/build/builder.go b/build/builder.go index 2eac320..665bfc1 100644 --- a/build/builder.go +++ b/build/builder.go
@@ -272,7 +272,8 @@ } // Finish creates a last shard from the buffered documents, and clears -// stale shards from previous runs +// stale shards from previous runs. This should always be called, also +// in failure cases, to ensure cleanup. func (b *Builder) Finish() error { b.flush() b.building.Wait() @@ -281,6 +282,7 @@ for tmp := range b.finishedShards { os.Remove(tmp) } + b.finishedShards = map[string]string{} return b.buildError } @@ -289,6 +291,7 @@ b.buildError = err } } + b.finishedShards = map[string]string{} if b.nextShardNum > 0 { b.deleteRemainingShards()