update conditional metrics usage

This commit is contained in:
ginuerzh 2022-07-29 21:18:01 +08:00
parent 5a15f53fc6
commit 513eefe034
5 changed files with 22 additions and 15 deletions

View File

@ -1,6 +1,8 @@
package bufpool
import "sync"
import (
"sync"
)
var (
pools = []struct {

View File

@ -2,7 +2,6 @@ package udp
import (
"net"
"sync"
"time"
"github.com/go-gost/core/common/bufpool"
@ -22,7 +21,7 @@ type listener struct {
conn net.PacketConn
cqueue chan net.Conn
connPool *connPool
mux sync.Mutex
// mux sync.Mutex
closed chan struct{}
errChan chan error
config *ListenConfig
@ -109,8 +108,8 @@ func (ln *listener) Close() error {
}
func (ln *listener) getConn(raddr net.Addr) *conn {
ln.mux.Lock()
defer ln.mux.Unlock()
// ln.mux.Lock()
// defer ln.mux.Unlock()
c, ok := ln.connPool.Get(raddr.String())
if ok {

View File

@ -29,7 +29,7 @@ var (
global Metrics = Noop()
)
func SetGlobal(m Metrics) {
func Init(m Metrics) {
if m != nil {
global = m
} else {
@ -37,8 +37,8 @@ func SetGlobal(m Metrics) {
}
}
func Global() Metrics {
return global
func IsEnabled() bool {
return global != Noop()
}
type Gauge interface {

View File

@ -20,6 +20,9 @@ type serverConn struct {
}
func WrapConn(service string, c net.Conn) net.Conn {
if !metrics.IsEnabled() {
return c
}
return &serverConn{
service: service,
Conn: c,
@ -65,6 +68,9 @@ type packetConn struct {
}
func WrapPacketConn(service string, pc net.PacketConn) net.PacketConn {
if !metrics.IsEnabled() {
return pc
}
return &packetConn{
PacketConn: pc,
service: service,

View File

@ -12,6 +12,10 @@ type listener struct {
}
func WrapListener(service string, ln net.Listener) net.Listener {
if !metrics.IsEnabled() {
return ln
}
return &listener{
service: service,
Listener: ln,
@ -24,9 +28,5 @@ func (ln *listener) Accept() (net.Conn, error) {
return nil, err
}
// metrics is not enabled
if metrics.Global() == metrics.Noop() {
return c, nil
}
return WrapConn(ln.service, c), nil
}