@xiangli-cmu I can't, in good conscience, approve a `goto` statement in etcd. You can avoid it if you just label the `for` loop and do a named break:

```go
L:
    for {
    case event = <-eventChan:
        if ... {
            ...
        } else {
            break L
        }
    }
```