mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-28 09:13:09 -06:00
Port mutex
This commit is contained in:
parent
283efd0438
commit
598b3ce5ad
|
|
@ -14,6 +14,7 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
|
|
@ -107,6 +108,8 @@ func (m *DendriteMonolith) Conduit(zone string) (*Conduit, error) {
|
||||||
l, r := net.Pipe()
|
l, r := net.Pipe()
|
||||||
conduit := &Conduit{conn: r, port: 0}
|
conduit := &Conduit{conn: r, port: 0}
|
||||||
go func() {
|
go func() {
|
||||||
|
conduit.portMutex.Lock()
|
||||||
|
defer conduit.portMutex.Unlock()
|
||||||
loop:
|
loop:
|
||||||
for i := 1; i <= 10; i++ {
|
for i := 1; i <= 10; i++ {
|
||||||
logrus.Errorf("Attempting authenticated connect (attempt %d)", i)
|
logrus.Errorf("Attempting authenticated connect (attempt %d)", i)
|
||||||
|
|
@ -365,11 +368,14 @@ func (m *DendriteMonolith) Suspend() {
|
||||||
}
|
}
|
||||||
|
|
||||||
type Conduit struct {
|
type Conduit struct {
|
||||||
conn net.Conn
|
conn net.Conn
|
||||||
port types.SwitchPortID
|
port types.SwitchPortID
|
||||||
|
portMutex sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Conduit) Port() int {
|
func (c *Conduit) Port() int {
|
||||||
|
c.portMutex.Lock()
|
||||||
|
defer c.portMutex.Unlock()
|
||||||
return int(c.port)
|
return int(c.port)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue