mirror of
https://github.com/newnius/YAO-scheduler.git
synced 2025-06-06 22:01:55 +00:00
[bugfix] FCFS dead lock
This commit is contained in:
parent
c54e526b42
commit
5c3d3592c8
@ -24,12 +24,21 @@ func (scheduler *SchedulerFCFS) Start() {
|
|||||||
scheduler.jobMasters = map[string]*JobManager{}
|
scheduler.jobMasters = map[string]*JobManager{}
|
||||||
scheduler.history = []*Job{}
|
scheduler.history = []*Job{}
|
||||||
scheduler.enabled = true
|
scheduler.enabled = true
|
||||||
|
scheduler.parallelism = 1
|
||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
for {
|
for {
|
||||||
log.Debug("Scheduling")
|
log.Debug("Scheduling")
|
||||||
time.Sleep(time.Second * 5)
|
time.Sleep(time.Second * 5)
|
||||||
|
|
||||||
scheduler.schedulingMu.Lock()
|
scheduler.schedulingMu.Lock()
|
||||||
|
if len(scheduler.schedulingJobs) >= scheduler.parallelism {
|
||||||
|
scheduler.schedulingMu.Unlock()
|
||||||
|
time.Sleep(time.Millisecond * 100)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
scheduler.schedulingMu.Unlock()
|
||||||
|
|
||||||
scheduler.queueMu.Lock()
|
scheduler.queueMu.Lock()
|
||||||
if len(scheduler.queue) > 0 {
|
if len(scheduler.queue) > 0 {
|
||||||
|
|
||||||
@ -47,8 +56,6 @@ func (scheduler *SchedulerFCFS) Start() {
|
|||||||
go func() {
|
go func() {
|
||||||
jm.start()
|
jm.start()
|
||||||
}()
|
}()
|
||||||
} else {
|
|
||||||
scheduler.schedulingMu.Unlock()
|
|
||||||
}
|
}
|
||||||
scheduler.queueMu.Unlock()
|
scheduler.queueMu.Unlock()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user