@@ -68,17 +68,11 @@ func processWorkItems(ws []workItem) ([]workResult, error) {
6868```
6969Because ` ch ` is unbuffered, if ` processWorkItems ` returns early due to
7070an error, all remaining ` processWorkItem ` goroutines will leak.
71- However, ` ch ` also becomes inaccessible to all other goroutines
71+ However, ` ch ` also becomes unreachable to all other goroutines
7272not involved in the leak soon after the leak itself occurs.
73-
74- In general, a goroutine is leaked if it is blocked on an operation
75- over concurrency primitives (e.g., channels,
76- [ sync.Mutex] ) that are only reachable via leaked goroutines.
77- In the example above, the culprit send operation involves
78- a channel only reachable to ` processWorkItem ` goroutines.
79- The runtime is now equipped to detect such leaks via goroutine
80- leak profiles. All leaks reported by profiles are real, i.e.,
81- there are no false positives.
73+ In general, the runtime is now equipped to identify as leaked
74+ any goroutines blocked on operations over concurrency primitives
75+ (e.g., channels, [ sync.Mutex] ) that are not reachable from runnable goroutines.
8276
8377Note, however, that the runtime may fail to identify leaks caused by
8478blocking on operations over concurrency primitives reachable
0 commit comments