219
220
221
222
223
224
225
226
227
228
229
230
231
232
|
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
|
+
+
+
|
}
// Returns a handler that stores every seen task and an ancillary function to retrieve those
func collecting() (handler, func() tasks) {
var seen = make(map[*task]struct{})
return func(t *task) action {
seen[t] = struct{}{}
for _, dep := range t.depends {
seen[dep] = struct{}{}
}
return action{}
}, func() tasks {
seq := make(tasks, 0, len(seen))
for k, _ := range seen {
seq = append(seq, k)
}
sort.Stable(seq)
|