@@ -41,17 +41,11 @@ func processWorkItems(ws []workItem) ([]workResult, error) {
4141```
4242Because ` ch ` is unbuffered, if ` processWorkItems ` returns early due to
4343an error, all remaining ` processWorkItem ` goroutines will leak.
44- However, ` ch ` also becomes inaccessible to all other goroutines
44+ However, ` ch ` also becomes unreachable to all other goroutines
4545not involved in the leak soon after the leak itself occurs.
46-
47- In general, a goroutine is leaked if it is blocked on an operation
48- over concurrency primitives (e.g., channels,
49- [ sync.Mutex] ) that are only reachable via leaked goroutines.
50- In the example above, the culprit send operation involves
51- a channel only reachable to ` processWorkItem ` goroutines.
52- The runtime is now equipped to detect such leaks via goroutine
53- leak profiles. All leaks reported by profiles are real, i.e.,
54- there are no false positives.
46+ In general, the runtime is now equipped to identify as leaked
47+ any goroutines blocked on operations over concurrency primitives
48+ (e.g., channels, [ sync.Mutex] ) that are not reachable from runnable goroutines.
5549
5650Note, however, that the runtime may fail to identify leaks caused by
5751blocking on operations over concurrency primitives reachable
0 commit comments