diff options
| author | James Tucker <james@tailscale.com> | 2024-01-18 10:33:20 -0800 |
|---|---|---|
| committer | James Tucker <jftucker@gmail.com> | 2024-01-18 12:08:13 -0800 |
| commit | 38a1cf748a9920aa2cb49101730bba06db1fd839 (patch) | |
| tree | e98007d5dc8a777a3a1b99ac8b8682facc438ad1 /util/execqueue/execqueue_test.go | |
| parent | 32f01acc79756468656f622adb0c1f68422eaf42 (diff) | |
| download | tailscale-38a1cf748a9920aa2cb49101730bba06db1fd839.tar.xz tailscale-38a1cf748a9920aa2cb49101730bba06db1fd839.zip | |
control/controlclient,util/execqueue: extract execqueue into a package
This is a useful primitive for asynchronous execution of ordered work I
want to use in another change.
Updates tailscale/corp#16833
Signed-off-by: James Tucker <james@tailscale.com>
Diffstat (limited to 'util/execqueue/execqueue_test.go')
| -rw-r--r-- | util/execqueue/execqueue_test.go | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/util/execqueue/execqueue_test.go b/util/execqueue/execqueue_test.go new file mode 100644 index 000000000..d10b741f7 --- /dev/null +++ b/util/execqueue/execqueue_test.go @@ -0,0 +1,22 @@ +// Copyright (c) Tailscale Inc & AUTHORS +// SPDX-License-Identifier: BSD-3-Clause + +package execqueue + +import ( + "context" + "sync/atomic" + "testing" +) + +func TestExecQueue(t *testing.T) { + ctx := context.Background() + var n atomic.Int32 + q := &ExecQueue{} + defer q.Shutdown() + q.Add(func() { n.Add(1) }) + q.Wait(ctx) + if got := n.Load(); got != 1 { + t.Errorf("n=%d; want 1", got) + } +} |
