get rid of mutexes and use a single loop to prevent races.

in the meantime change the API to makes a little less error-prone.
This commit is contained in:
fiatjaf
2023-06-21 19:55:40 -03:00
parent af4fc98fc2
commit 030c1d1898
4 changed files with 274 additions and 179 deletions

View File

@@ -35,7 +35,7 @@ func (pool *SimplePool) EnsureRelay(url string) (*Relay, error) {
defer pool.mutex.Unlock()
relay, ok := pool.Relays[nm]
if ok && relay.connectionContext.Err() == nil {
if ok && relay.IsConnected() {
// already connected, unlock and return
return relay, nil
} else {