]> Cypherpunks.ru repositories - goredo.git/blobdiff - ifchange.go
Prevent possible race when building target twice
[goredo.git] / ifchange.go
index cbf1c05dbebb81014ad668903d2962c8a9f3fb0c..401574de816b8ef06d7af2c2210917326823807d 100644 (file)
@@ -109,7 +109,7 @@ func buildDependants(tgts []string) map[string]struct{} {
        tracef(CDebug, "building %d alwayses: %v", len(seen), seen)
        errs := make(chan error, len(seen))
        for tgt := range seen {
-               if err := runScript(tgt, errs, false); err != nil {
+               if err := runScript(tgt, errs, false, false); err != nil {
                        tracef(CErr, "always run error: %s, skipping dependants", err)
                        return nil
                }
@@ -146,7 +146,7 @@ RebuildDeps:
        errs = make(chan error, len(queue))
        jobs := 0
        queueSrc = []string{}
-       for tgt, _ := range queue {
+       for tgt := range queue {
                ood, err := isOODWithTrace(Cwd, tgt, 0, seen)
                if err != nil {
                        tracef(CErr, "dependant error: %s, skipping dependants", err)
@@ -155,7 +155,7 @@ RebuildDeps:
                if !ood {
                        continue
                }
-               if err := runScript(tgt, errs, false); err != nil {
+               if err := runScript(tgt, errs, false, false); err != nil {
                        tracef(CErr, "dependant error: %s, skipping dependants", err)
                        return nil
                }
@@ -225,7 +225,7 @@ func ifchange(tgts []string, forced, traced bool) (bool, error) {
                        tracef(CDebug, "%s is source, not redoing", tgt)
                        continue
                }
-               if err = runScript(tgt, errs, traced); err != nil {
+               if err = runScript(tgt, errs, forced, traced); err != nil {
                        return false, err
                }
                jobs++