ing
This commit is contained in:
parent
3e3a884c4d
commit
526dce9cce
39
servlet.go
39
servlet.go
|
@ -81,21 +81,7 @@ func (s *rpcServlet) Start(parentCTX cuc.Context, conn interface{}, doneChan cha
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *rpcServlet) Stop() {
|
func (s *rpcServlet) Stop() {
|
||||||
if s.stopChan == nil {
|
s.destroy(nil)
|
||||||
panic("Server: server must be started before stopping it")
|
|
||||||
}
|
|
||||||
|
|
||||||
close(s.stopChan)
|
|
||||||
s.stopWg.Wait()
|
|
||||||
|
|
||||||
s.sh.Destroy(s.ctx)
|
|
||||||
|
|
||||||
s.stopChan = nil
|
|
||||||
s.responseQueueChan = nil
|
|
||||||
s.conn = nil
|
|
||||||
s.serverCodec = nil
|
|
||||||
|
|
||||||
logging.Logger().Info(fmt.Sprintf("Servlet is stopped"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *rpcServlet) Send(method string, args ...interface{}) (err error) {
|
func (s *rpcServlet) Send(method string, args ...interface{}) (err error) {
|
||||||
|
@ -116,6 +102,26 @@ func (s *rpcServlet) Context() ServletContext {
|
||||||
return s.ctx
|
return s.ctx
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *rpcServlet) destroy(err error) {
|
||||||
|
if s.stopChan == nil {
|
||||||
|
panic("Server: server must be started before stopping it")
|
||||||
|
}
|
||||||
|
|
||||||
|
close(s.stopChan)
|
||||||
|
s.stopWg.Wait()
|
||||||
|
|
||||||
|
s.sh.Destroy(s.ctx)
|
||||||
|
|
||||||
|
s.stopChan = nil
|
||||||
|
s.responseQueueChan = nil
|
||||||
|
s.conn = nil
|
||||||
|
s.serverCodec = nil
|
||||||
|
|
||||||
|
logging.Logger().Info(fmt.Sprintf("Servlet is stopped"))
|
||||||
|
|
||||||
|
s.doneChan <- err
|
||||||
|
}
|
||||||
|
|
||||||
func handleServlet(s *rpcServlet) {
|
func handleServlet(s *rpcServlet) {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
|
@ -123,8 +129,7 @@ func handleServlet(s *rpcServlet) {
|
||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
s.stopWg.Done()
|
s.stopWg.Done()
|
||||||
s.Stop()
|
s.destroy(err)
|
||||||
s.doneChan <- err
|
|
||||||
}()
|
}()
|
||||||
|
|
||||||
subStopChan := make(chan struct{})
|
subStopChan := make(chan struct{})
|
||||||
|
|
Loading…
Reference in New Issue
Block a user