1
0
mirror of https://github.com/newnius/YAO-scheduler.git synced 2025-06-06 05:51:54 +00:00

[bugfix] FCFS dead lock

This commit is contained in:
Newnius 2020-08-14 16:13:36 +08:00
parent c54e526b42
commit 5c3d3592c8

View File

@ -24,12 +24,21 @@ func (scheduler *SchedulerFCFS) Start() {
scheduler.jobMasters = map[string]*JobManager{}
scheduler.history = []*Job{}
scheduler.enabled = true
scheduler.parallelism = 1
go func() {
for {
log.Debug("Scheduling")
time.Sleep(time.Second * 5)
scheduler.schedulingMu.Lock()
if len(scheduler.schedulingJobs) >= scheduler.parallelism {
scheduler.schedulingMu.Unlock()
time.Sleep(time.Millisecond * 100)
continue
}
scheduler.schedulingMu.Unlock()
scheduler.queueMu.Lock()
if len(scheduler.queue) > 0 {
@ -47,8 +56,6 @@ func (scheduler *SchedulerFCFS) Start() {
go func() {
jm.start()
}()
} else {
scheduler.schedulingMu.Unlock()
}
scheduler.queueMu.Unlock()
}