Was getting segfaults with multiple services using `x-develop` and `watch` at the same time. Turns out the Moby path matcher lazily initializes the regex pattern internally the first time it's used, so it's not goroutine-safe. Change here is to not use a global instance for the ephemeral path matcher, but a per-watcher instance. Additionally, the data race detector caught a couple other issues that were easy enough to fix: * Use the lock that's used elsewhere for convergence before manipulating * Eliminate concurrent map access when triggering rebuilds Signed-off-by: Milas Bowman <milas.bowman@docker.com> |
||
|---|---|---|
| .. | ||
| api | ||
| compose | ||
| e2e | ||
| mocks | ||
| progress | ||
| prompt | ||
| utils | ||
| watch | ||