summaryrefslogtreecommitdiffhomepage
path: root/util/execqueue/execqueue_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'util/execqueue/execqueue_test.go')
-rw-r--r--util/execqueue/execqueue_test.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/util/execqueue/execqueue_test.go b/util/execqueue/execqueue_test.go
index d10b741f7..1bce69556 100644
--- a/util/execqueue/execqueue_test.go
+++ b/util/execqueue/execqueue_test.go
@@ -20,3 +20,12 @@ func TestExecQueue(t *testing.T) {
t.Errorf("n=%d; want 1", got)
}
}
+
+// Test that RunSync doesn't hold q.mu and block Shutdown
+// as we saw in tailscale/tailscale#18502
+func TestExecQueueRunSyncLocking(t *testing.T) {
+ q := &ExecQueue{}
+ q.RunSync(t.Context(), func() {
+ q.Shutdown()
+ })
+}