Skip to content

Commit f62e608

Browse files
authored
[5.6] Load manifests asynchronously [cherry pick] (#3940)
* Refactor manifest loading to use new async Process.popen() * Use DelayableAction to ensure deferred actions are managed correctly DelayableAction represents an action on a target that can be deferred until a more appropriate time. In this case, we use defer to cleanup objects in the case of early return error handling, but we need to delay this action when passing the target for use into an async completion block. * Use delegateQueue to avoid reusing the TSCBasic.Process default queue The manifest parser uses SourceControl.GitShellHelper synchronously, which would cause a hang if using the default queue for completions. * reduce concurrent manifest loading test contention (#3954) motivation: with manfiest loading async, the concurrent loading tests introduce significant contention on cpu since the underlying queue in unbounded changes: use semaphore to limit the concurrency to max active cpus
1 parent 2f269a6 commit f62e608

File tree

2 files changed

+266
-177
lines changed

2 files changed

+266
-177
lines changed

0 commit comments

Comments
 (0)