Jelajahi Sumber

Simplify Design

Shelikhoo 9 tahun lalu
induk
melakukan
32e8deb6e8
1 mengubah file dengan 4 tambahan dan 34 penghapusan
  1. 4 34
      transport/internet/ws/stopablehttplistener.go

+ 4 - 34
transport/internet/ws/stopablehttplistener.go

@@ -6,54 +6,24 @@ import (
 )
 
 type StoppableListener struct {
-	net.Listener          //Wrapped listener
-	stop         chan int //Channel used only to indicate listener should shutdown
+	net.Listener //Wrapped listener
 }
 
 func NewStoppableListener(l net.Listener) (*StoppableListener, error) {
-	/*
-		tcpL, ok := l.(*net.TCPListener)
 
-		if !ok {
-			return nil, errors.New("Cannot wrap listener")
-		}
-	*/
 	retval := &StoppableListener{}
 	retval.Listener = l
-	retval.stop = make(chan int)
-
 	return retval, nil
 }
 
 var StoppedError = errors.New("Listener stopped")
 
 func (sl *StoppableListener) Accept() (net.Conn, error) {
+	newConn, err := sl.Listener.Accept()
+	return newConn, err
 
-	for {
-		newConn, err := sl.Listener.Accept()
-
-		//Check for the channel being closed
-		select {
-		case <-sl.stop:
-			return nil, StoppedError
-		default:
-			//If the channel is still open, continue as normal
-		}
-
-		if err != nil {
-			netErr, ok := err.(net.Error)
-
-			//If this is a timeout, then continue to wait for
-			//new connections
-			if ok && netErr.Timeout() && netErr.Temporary() {
-				continue
-			}
-		}
-
-		return newConn, err
-	}
 }
 
 func (sl *StoppableListener) Stop() {
-	close(sl.stop)
+	sl.Listener.Close()
 }