2021-04-10 10:35:38 +02:00
|
|
|
package sched
|
2021-04-04 12:51:14 +02:00
|
|
|
|
|
|
|
import (
|
|
|
|
"sync"
|
2021-04-10 11:07:02 +02:00
|
|
|
|
|
|
|
"github.com/sherifabdlnaby/sched/job"
|
2021-04-04 12:51:14 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
type jobMap struct {
|
|
|
|
jobs map[string]*job.Job
|
|
|
|
mx sync.RWMutex
|
|
|
|
}
|
|
|
|
|
|
|
|
func newJobMap() *jobMap {
|
|
|
|
return &jobMap{
|
|
|
|
jobs: make(map[string]*job.Job),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-04-10 11:07:02 +02:00
|
|
|
func (jm *jobMap) add(j *job.Job) {
|
2021-04-04 12:51:14 +02:00
|
|
|
jm.mx.Lock()
|
|
|
|
defer jm.mx.Unlock()
|
2021-04-10 11:07:02 +02:00
|
|
|
jm.jobs[j.ID()] = j
|
2021-04-04 12:51:14 +02:00
|
|
|
}
|
|
|
|
|
2021-04-10 11:07:02 +02:00
|
|
|
func (jm *jobMap) delete(j *job.Job) {
|
2021-04-04 12:51:14 +02:00
|
|
|
jm.mx.Lock()
|
|
|
|
defer jm.mx.Unlock()
|
2021-04-10 11:07:02 +02:00
|
|
|
delete(jm.jobs, j.ID())
|
2021-04-04 12:51:14 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
func (jm *jobMap) len() int {
|
|
|
|
jm.mx.RLock()
|
|
|
|
defer jm.mx.RUnlock()
|
|
|
|
return len(jm.jobs)
|
|
|
|
}
|