Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(core): improved task graph concurrency
This commit adds batch-based concurrency to the task graph. When TaskGraph's process method is called, the requested tasks are grouped into batches that share one or more keys (including dependencies). These batches are then queued. In each iteration of the task graph's main loop, any pending batches that share no keys with currently in-progress batches are added to the graph. This enables e.g. hot reload tasks to be run concurrently with build and test tasks for their underlying modules, which was one of the primary motivators behind this change. Also replaced the concurrencyLimit option for TaskGraph's processTasks method with an unlimitedConcurrency option. This is useful e.g. when resolving providers. Task nodes from batches with unlimited concurrency are processed regardless of normally available task graph concurrency.
- Loading branch information