should this check to see if we've already been called so that we dont try to force a connection and launch a new set of goroutines?

you can use [`sync/atomic`](http://golang.org/pkg/sync/atomic/)