aboutsummaryrefslogtreecommitdiff
path: root/nix2/state.go
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2022-11-29 09:46:43 +0100
committerAlex Auvolat <alex@adnab.me>2022-11-29 09:46:43 +0100
commit153b8f1b9d52e7e5a6d35dfbd4ff4ff359a0dee7 (patch)
tree8d2fa2580f7f2e3bd64a8d7c0b80fd2c8c5c7c92 /nix2/state.go
parent14bd8f2010c3a1f90c6d1297f47ebbf46ee87dde (diff)
downloadnomad-driver-nix2-153b8f1b9d52e7e5a6d35dfbd4ff4ff359a0dee7.tar.gz
nomad-driver-nix2-153b8f1b9d52e7e5a6d35dfbd4ff4ff359a0dee7.zip
Rename driver to nix2
Diffstat (limited to 'nix2/state.go')
-rw-r--r--nix2/state.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/nix2/state.go b/nix2/state.go
new file mode 100644
index 0000000..a846ea4
--- /dev/null
+++ b/nix2/state.go
@@ -0,0 +1,33 @@
+package nix2
+
+import (
+ "sync"
+)
+
+type taskStore struct {
+ store map[string]*taskHandle
+ lock sync.RWMutex
+}
+
+func newTaskStore() *taskStore {
+ return &taskStore{store: map[string]*taskHandle{}}
+}
+
+func (ts *taskStore) Set(id string, handle *taskHandle) {
+ ts.lock.Lock()
+ defer ts.lock.Unlock()
+ ts.store[id] = handle
+}
+
+func (ts *taskStore) Get(id string) (*taskHandle, bool) {
+ ts.lock.RLock()
+ defer ts.lock.RUnlock()
+ t, ok := ts.store[id]
+ return t, ok
+}
+
+func (ts *taskStore) Delete(id string) {
+ ts.lock.Lock()
+ defer ts.lock.Unlock()
+ delete(ts.store, id)
+}