Explorar el Código

修复队某些函数忘记写列锁问题

Signed-off-by: allan716 <[email protected]>
allan716 hace 3 años
padre
commit
3f7be91bc4

+ 6 - 0
internal/logic/task_queue/task_queue.go

@@ -169,6 +169,9 @@ func (t *TaskQueue) GetOneWaiting() (bool, task_queue.OneJob, error) {
 
 func (t *TaskQueue) Get(status task_queue.JobStatus) (bool, []task_queue.OneJob, error) {
 
+	defer t.queueLock.Unlock()
+	t.queueLock.Lock()
+
 	outOneJobs := make([]task_queue.OneJob, 0)
 	// 如果队列里面没有东西,则返回 false
 	if t.isEmpty() == true {
@@ -193,6 +196,9 @@ func (t *TaskQueue) Get(status task_queue.JobStatus) (bool, []task_queue.OneJob,
 
 func (t *TaskQueue) GetTaskPriority(taskPriority int, status task_queue.JobStatus) (bool, []task_queue.OneJob, error) {
 
+	defer t.queueLock.Unlock()
+	t.queueLock.Lock()
+
 	outOneJobs := make([]task_queue.OneJob, 0)
 	// 如果队列里面没有东西,则返回 false
 	if t.isEmpty() == true {

+ 1 - 1
internal/pkg/downloader/downloader.go

@@ -200,7 +200,7 @@ func (d *Downloader) filterMovieAndSeriesNeedDownloadNormal(normal *NormalScanVi
 			continue
 		}
 
-		err := d.downloadQueue.Push(*TTaskqueue.NewOneJob(
+		bok, err := d.downloadQueue.Add(*TTaskqueue.NewOneJob(
 			common.Movie, oneMovieFPath, 5,
 		))
 		if err != nil {