all: improvement in utils/conn

This commit is contained in:
fatedier
2016-02-25 10:28:34 +08:00
parent 26479cf92a
commit 42e062b3b5
6 changed files with 59 additions and 33 deletions

View File

@@ -52,15 +52,15 @@ func Listen(bindAddr string, bindPort int64) (l *Listener, err error) {
return l, err
}
// wait util get one new connection or close
// if listener is closed, return nil
func (l *Listener) GetConn() (conn *Conn) {
// wait util get one new connection or listener is closed
// if listener is closed, err returned
func (l *Listener) GetConn() (conn *Conn, err error) {
var ok bool
conn, ok = <-l.conns
if !ok {
return nil
return conn, fmt.Errorf("channel close")
}
return conn
return conn, nil
}
func (l *Listener) Close() {
@@ -116,7 +116,7 @@ func (c *Conn) Write(content string) (err error) {
}
func (c *Conn) Close() {
if c.TcpConn != nil {
if c.TcpConn != nil && c.closeFlag == false {
c.closeFlag = true
c.TcpConn.Close()
}