Hmm, seems like a lot of ceremony here... what do you think about something like

```
	t := time.NewTicker(interval)
	for {
		select {
		case <-t:
			submit(r.repairs)
			r.repairs = map[keyMember]bool{}

		case kms := <-a.addRepairs:
			for _, km := range kms {
				r.repairs[km] = true
			}
		
		case q := <-quit:
			close(q)
			return			
		}
	}
```

Where `r.quit` is type `chan chan struct{}`, and `close()` becomes

```
q := make(chan struct{})
r.quit <- q
<-q
```

?