syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging

Updates #17852

Change-Id: I477340fb8e40686870e981ade11cd61597c34a20
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
This commit is contained in:
Brad Fitzpatrick
2025-11-15 09:40:57 -08:00
committed by Brad Fitzpatrick
parent 3a41c0c585
commit 99b06eac49
55 changed files with 145 additions and 94 deletions
+4 -4
View File
@@ -8,8 +8,8 @@ import (
"log"
"reflect"
"slices"
"sync"
"tailscale.com/syncs"
"tailscale.com/types/logger"
"tailscale.com/util/set"
)
@@ -34,12 +34,12 @@ type Bus struct {
routeDebug hook[RoutedEvent]
logf logger.Logf
topicsMu sync.Mutex
topicsMu syncs.Mutex
topics map[reflect.Type][]*subscribeState
// Used for introspection/debugging only, not in the normal event
// publishing path.
clientsMu sync.Mutex
clientsMu syncs.Mutex
clients set.Set[*Client]
}
@@ -306,7 +306,7 @@ func (w *worker) StopAndWait() {
type stopFlag struct {
// guards the lazy construction of stopped, and the value of
// alreadyStopped.
mu sync.Mutex
mu syncs.Mutex
stopped chan struct{}
alreadyStopped bool
}
+2 -2
View File
@@ -5,8 +5,8 @@ package eventbus
import (
"reflect"
"sync"
"tailscale.com/syncs"
"tailscale.com/types/logger"
"tailscale.com/util/set"
)
@@ -22,7 +22,7 @@ type Client struct {
bus *Bus
publishDebug hook[PublishedEvent]
mu sync.Mutex
mu syncs.Mutex
pub set.Set[publisher]
sub *subscribeState // Lazily created on first subscribe
stop stopFlag // signaled on Close
+2 -2
View File
@@ -11,10 +11,10 @@ import (
"runtime"
"slices"
"strings"
"sync"
"sync/atomic"
"time"
"tailscale.com/syncs"
"tailscale.com/types/logger"
)
@@ -147,7 +147,7 @@ func (d *Debugger) SubscribeTypes(client *Client) []reflect.Type {
// A hook collects hook functions that can be run as a group.
type hook[T any] struct {
sync.Mutex
syncs.Mutex
fns []hookFn[T]
}
+2 -2
View File
@@ -8,9 +8,9 @@ import (
"fmt"
"reflect"
"runtime"
"sync"
"time"
"tailscale.com/syncs"
"tailscale.com/types/logger"
"tailscale.com/util/cibuild"
)
@@ -51,7 +51,7 @@ type subscribeState struct {
snapshot chan chan []DeliveredEvent
debug hook[DeliveredEvent]
outputsMu sync.Mutex
outputsMu syncs.Mutex
outputs map[reflect.Type]subscriber
}