Merge "Revert "Multithread symlink forest removal.""

This commit is contained in:
Christopher Parsons
2022-10-28 15:45:14 +00:00
committed by Gerrit Code Review
2 changed files with 4 additions and 45 deletions

View File

@@ -32,7 +32,7 @@ func runJavaBinaryHostTestCase(t *testing.T, tc Bp2buildTestCase) {
}, tc)
}
var testFs = map[string]string{
var fs = map[string]string{
"test.mf": "Main-Class: com.android.test.MainClass",
"other/Android.bp": `cc_library_host_shared {
name: "jni-lib-1",
@@ -43,7 +43,7 @@ var testFs = map[string]string{
func TestJavaBinaryHost(t *testing.T) {
runJavaBinaryHostTestCase(t, Bp2buildTestCase{
Description: "java_binary_host with srcs, exclude_srcs, jni_libs, javacflags, and manifest.",
Filesystem: testFs,
Filesystem: fs,
Blueprint: `java_binary_host {
name: "java-binary-host-1",
srcs: ["a.java", "b.java"],
@@ -76,7 +76,7 @@ func TestJavaBinaryHost(t *testing.T) {
func TestJavaBinaryHostRuntimeDeps(t *testing.T) {
runJavaBinaryHostTestCase(t, Bp2buildTestCase{
Description: "java_binary_host with srcs, exclude_srcs, jni_libs, javacflags, and manifest.",
Filesystem: testFs,
Filesystem: fs,
Blueprint: `java_binary_host {
name: "java-binary-host-1",
static_libs: ["java-dep-1"],

View File

@@ -15,9 +15,7 @@
package bp2build
import (
"errors"
"fmt"
"io/fs"
"io/ioutil"
"os"
"path/filepath"
@@ -319,45 +317,6 @@ func plantSymlinkForestRecursive(context *symlinkForestContext, instructions *in
}
}
func removeParallelRecursive(path string, fi os.FileInfo, wg *sync.WaitGroup) {
defer wg.Done()
if fi.IsDir() {
children := readdirToMap(path)
childrenWg := &sync.WaitGroup{}
childrenWg.Add(len(children))
for child, childFi := range children {
go removeParallelRecursive(shared.JoinPath(path, child), childFi, childrenWg)
}
childrenWg.Wait()
}
if err := os.Remove(path); err != nil {
fmt.Fprintf(os.Stderr, "Cannot unlink '%s': %s\n", path, err)
os.Exit(1)
}
}
func removeParallel(path string) {
fi, err := os.Lstat(path)
if err != nil {
if errors.Is(err, fs.ErrNotExist) {
return
}
fmt.Fprintf(os.Stderr, "Cannot lstat '%s': %s\n", path, err)
os.Exit(1)
}
wg := &sync.WaitGroup{}
wg.Add(1)
removeParallelRecursive(path, fi, wg)
wg.Wait()
}
// Creates a symlink forest by merging the directory tree at "buildFiles" and
// "srcDir" while excluding paths listed in "exclude". Returns the set of paths
// under srcDir on which readdir() had to be called to produce the symlink
@@ -371,7 +330,7 @@ func PlantSymlinkForest(verbose bool, topdir string, forest string, buildFiles s
context.okay.Store(true)
removeParallel(shared.JoinPath(topdir, forest))
os.RemoveAll(shared.JoinPath(topdir, forest))
instructions := instructionsFromExcludePathList(exclude)
go func() {