THRIFT-4237 Fix effective deadlock introduced by original patch
Client: Go
Patch: Zachary Wasserman <zachwass2000@gmail.com>

This closes #1304
diff --git a/lib/go/thrift/server_socket.go b/lib/go/thrift/server_socket.go
index 68c9a02..80313c4 100644
--- a/lib/go/thrift/server_socket.go
+++ b/lib/go/thrift/server_socket.go
@@ -68,15 +68,19 @@
 
 func (p *TServerSocket) Accept() (TTransport, error) {
 	p.mu.RLock()
-	defer p.mu.RUnlock()
+	interrupted := p.interrupted
+	p.mu.RUnlock()
 
-	if p.interrupted {
+	if interrupted {
 		return nil, errTransportInterrupted
 	}
-	if p.listener == nil {
+
+	listener := p.listener
+	if listener == nil {
 		return nil, NewTTransportException(NOT_OPEN, "No underlying server socket")
 	}
-	conn, err := p.listener.Accept()
+
+	conn, err := listener.Accept()
 	if err != nil {
 		return nil, NewTTransportExceptionFromError(err)
 	}