Compare commits

...

4 Commits

Author SHA1 Message Date
Joachim Bauch 61000f5f69
Merge pull request #75 from strukturag/multiple-godeps
make: Only build "godeps" binary once.
2021-01-21 14:27:30 +01:00
Joachim Bauch 865798f920
make: Only build "godeps" binary once. 2021-01-21 14:23:09 +01:00
Joachim Bauch 043691d703
Merge pull request #72 from strukturag/align-for-atomic
Align 64-bit members that are accessed atomically.
2021-01-21 13:38:16 +01:00
Joachim Bauch 82c20ba930
Align 64-bit members that are accessed atomically. 2021-01-05 08:37:09 +01:00
6 changed files with 26 additions and 12 deletions

View File

@ -46,7 +46,9 @@ endif
hook:
[ ! -d "$(CURDIR)/.git/hooks" ] || ln -sf "$(CURDIR)/scripts/pre-commit.hook" "$(CURDIR)/.git/hooks/pre-commit"
godeps:
godeps: $(VENDORBIN)/godeps
$(VENDORBIN)/godeps:
GOPATH=$(GOPATH) $(GO) get github.com/rogpeppe/godeps
easyjson: dependencies

View File

@ -81,6 +81,9 @@ var (
)
type ProxyServer struct {
// 64-bit members that are accessed atomically must be 64-bit aligned.
load int64
version string
country string
@ -88,7 +91,6 @@ type ProxyServer struct {
nats signaling.NatsClient
mcu signaling.Mcu
stopped uint32
load int64
shutdownChannel chan bool
shutdownScheduled uint32

View File

@ -37,11 +37,13 @@ const (
)
type ProxySession struct {
proxy *ProxyServer
id string
sid uint64
// 64-bit members that are accessed atomically must be 64-bit aligned.
lastUsed int64
proxy *ProxyServer
id string
sid uint64
clientLock sync.Mutex
client *ProxyClient
pendingMessages []*signaling.ProxyServerMessage

View File

@ -96,6 +96,9 @@ const (
)
type Hub struct {
// 64-bit members that are accessed atomically must be 64-bit aligned.
sid uint64
nats NatsClient
upgrader websocket.Upgrader
cookie *securecookie.SecureCookie
@ -113,7 +116,6 @@ type Hub struct {
mu sync.RWMutex
ru sync.RWMutex
sid uint64
clients map[uint64]*Client
sessions map[uint64]Session
rooms map[string]*Room

View File

@ -136,6 +136,9 @@ type clientInterface interface {
}
type mcuJanus struct {
// 64-bit members that are accessed atomically must be 64-bit aligned.
clientId uint64
url string
mu sync.Mutex
nats NatsClient
@ -150,7 +153,6 @@ type mcuJanus struct {
closeChan chan bool
clientId uint64
muClients sync.Mutex
clients map[clientInterface]bool

View File

@ -259,6 +259,11 @@ func (s *mcuProxySubscriber) ProcessEvent(msg *EventProxyServerMessage) {
}
type mcuProxyConnection struct {
// 64-bit members that are accessed atomically must be 64-bit aligned.
reconnectInterval int64
msgId int64
load int64
proxy *mcuProxy
rawUrl string
url *url.URL
@ -270,15 +275,12 @@ type mcuProxyConnection struct {
conn *websocket.Conn
connectedSince time.Time
reconnectInterval int64
reconnectTimer *time.Timer
shutdownScheduled uint32
closeScheduled uint32
msgId int64
helloMsgId string
sessionId string
load int64
country atomic.Value
callbacks map[string]func(*ProxyServerMessage)
@ -959,6 +961,10 @@ func (c *mcuProxyConnection) newSubscriber(ctx context.Context, listener McuList
}
type mcuProxy struct {
// 64-bit members that are accessed atomically must be 64-bit aligned.
connRequests int64
nextSort int64
tokenId string
tokenKey *rsa.PrivateKey
@ -972,8 +978,6 @@ type mcuProxy struct {
connections []*mcuProxyConnection
connectionsMap map[string]*mcuProxyConnection
connectionsMu sync.RWMutex
connRequests int64
nextSort int64
proxyTimeout time.Duration
mu sync.RWMutex