fix: 修复 server 包未使用 KCP 服务器时会有额外的定时器损耗的问题
This commit is contained in:
parent
7e09229330
commit
4d72e8cbcb
|
@ -3,6 +3,7 @@ package server
|
|||
import (
|
||||
"github.com/kercylan98/minotaur/utils/log"
|
||||
"github.com/kercylan98/minotaur/utils/network"
|
||||
"github.com/xtaci/kcp-go/v5"
|
||||
"math"
|
||||
"os"
|
||||
"os/signal"
|
||||
|
@ -35,8 +36,12 @@ func (slf *MultipleServer) Run() {
|
|||
close(runtimeExceptionChannel)
|
||||
}()
|
||||
var wait sync.WaitGroup
|
||||
var hasKcp bool
|
||||
for i := 0; i < len(slf.servers); i++ {
|
||||
wait.Add(1)
|
||||
if slf.servers[i].network == NetworkKcp {
|
||||
hasKcp = true
|
||||
}
|
||||
go func(address string, server *Server) {
|
||||
var lock sync.Mutex
|
||||
var startFinish bool
|
||||
|
@ -62,6 +67,9 @@ func (slf *MultipleServer) Run() {
|
|||
}(slf.addresses[i], slf.servers[i])
|
||||
}
|
||||
wait.Wait()
|
||||
if !hasKcp {
|
||||
kcp.SystemTimedSched.Close()
|
||||
}
|
||||
|
||||
log.Info("Server", log.String(serverMultipleMark, "===================================================================="))
|
||||
ip, _ := network.IP()
|
||||
|
|
|
@ -352,6 +352,10 @@ func (slf *Server) Run(addr string) error {
|
|||
return ErrCanNotSupportNetwork
|
||||
}
|
||||
|
||||
if slf.multiple == nil && slf.network != NetworkKcp {
|
||||
kcp.SystemTimedSched.Close()
|
||||
}
|
||||
|
||||
<-messageInitFinish
|
||||
close(messageInitFinish)
|
||||
messageInitFinish = nil
|
||||
|
|
|
@ -11,7 +11,7 @@ import (
|
|||
|
||||
func TestNew(t *testing.T) {
|
||||
//limiter := rate.NewLimiter(rate.Every(time.Second), 100)
|
||||
srv := server.New(server.NetworkWebsocket, server.WithMessageBufferSize(1024*1024), server.WithPProf())
|
||||
srv := server.New(server.NetworkWebsocket, server.WithTicker(200, 10, false), server.WithMessageBufferSize(1024*1024), server.WithPProf())
|
||||
//srv.RegMessageExecBeforeEvent(func(srv *server.Server, message *server.Message) bool {
|
||||
// t, c := srv.TimeoutContext(time.Second * 5)
|
||||
// defer c()
|
||||
|
|
Loading…
Reference in New Issue