github.com/iqoqo/nomad@v0.11.3-0.20200911112621-d7021c74d101/drivers/exec/state.go (about)

     1  package exec
     2  
     3  import (
     4  	"sync"
     5  )
     6  
     7  type taskStore struct {
     8  	store map[string]*taskHandle
     9  	lock  sync.RWMutex
    10  }
    11  
    12  func newTaskStore() *taskStore {
    13  	return &taskStore{store: map[string]*taskHandle{}}
    14  }
    15  
    16  func (ts *taskStore) Set(id string, handle *taskHandle) {
    17  	ts.lock.Lock()
    18  	defer ts.lock.Unlock()
    19  	ts.store[id] = handle
    20  }
    21  
    22  func (ts *taskStore) Get(id string) (*taskHandle, bool) {
    23  	ts.lock.RLock()
    24  	defer ts.lock.RUnlock()
    25  	t, ok := ts.store[id]
    26  	return t, ok
    27  }
    28  
    29  func (ts *taskStore) Delete(id string) {
    30  	ts.lock.Lock()
    31  	defer ts.lock.Unlock()
    32  	delete(ts.store, id)
    33  }