mirror of
https://github.com/Fishwaldo/sched.git
synced 2025-03-15 11:31:29 +00:00
36 lines
519 B
Go
36 lines
519 B
Go
package sched
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/sherifabdlnaby/sched/job"
|
|
)
|
|
|
|
type jobMap struct {
|
|
jobs map[string]*job.Job
|
|
mx sync.RWMutex
|
|
}
|
|
|
|
func newJobMap() *jobMap {
|
|
return &jobMap{
|
|
jobs: make(map[string]*job.Job),
|
|
}
|
|
}
|
|
|
|
func (jm *jobMap) add(j *job.Job) {
|
|
jm.mx.Lock()
|
|
defer jm.mx.Unlock()
|
|
jm.jobs[j.ID()] = j
|
|
}
|
|
|
|
func (jm *jobMap) delete(j *job.Job) {
|
|
jm.mx.Lock()
|
|
defer jm.mx.Unlock()
|
|
delete(jm.jobs, j.ID())
|
|
}
|
|
|
|
func (jm *jobMap) len() int {
|
|
jm.mx.RLock()
|
|
defer jm.mx.RUnlock()
|
|
return len(jm.jobs)
|
|
}
|