Run the metrics uploader in the background.
The metrics uploader was currently running on foreground where it would copy the metrics files in a separate directory and then forked into the background for the upload process. As a result, running the lunch command would take a second longer to run since each metrics uploader run had an average of half a second. Bug: 140638454 Test: * Wrote and updated unit test cases. * Set ANDROID_ENABLE_METRICS_UPLOAD to point to the latest metrics_uploader bash script. Executed the "lunch 1" command and measured the running time. Executed "m nothing" command and checked that the metrics were uploaded. * Ran "lunch 1" and "m nothing" with ANDROID_ENABLE_METRICS_UPLOAD="" * Removed oauth from metrics_uploader and ran "m nothing" and "lunch 1". The oauth Message appeared only to "m nothing" Change-Id: I13c61e666c8f44613dee291a704cef6a27335188
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
package build
|
||||
|
||||
import (
|
||||
"io"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -124,3 +125,20 @@ func decodeKeyValue(str string) (string, string, bool) {
|
||||
}
|
||||
return str[:idx], str[idx+1:], true
|
||||
}
|
||||
|
||||
// copyFile copies a file from src to dst. filepath.Dir(dst) must exist.
|
||||
func copyFile(src, dst string) (int64, error) {
|
||||
source, err := os.Open(src)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
defer source.Close()
|
||||
|
||||
destination, err := os.Create(dst)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
defer destination.Close()
|
||||
|
||||
return io.Copy(destination, source)
|
||||
}
|
||||
|
Reference in New Issue
Block a user