@fengjingchao I am thinking about the problem. The problem is currently there will be multiple dial() which results in multiple connection. That's very bad.
To avoid this, the connection should have a 'state' to indicate whether it is still active or not. (nil can be treated as a 'state' too, if outConns[to] == nil, then the connection is invalid).

Seems we need a mutex here to avoid race. What's your ideas?
@fengjingchao @xiangli-cmu