From 93086abf58881e99930b2b0625e4ed37f96cd734 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Sun, 25 Dec 2022 23:20:43 -0800 Subject: [PATCH] Fixed: Multiple pushed releases will be processed sequentially (cherry picked from commit 1f8e1cf582f59fe1e8dcc0fad15afeed6d9cd9d1) --- src/Readarr.Api.V1/Indexers/ReleasePushController.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Readarr.Api.V1/Indexers/ReleasePushController.cs b/src/Readarr.Api.V1/Indexers/ReleasePushController.cs index c5756810b..af01fd62c 100644 --- a/src/Readarr.Api.V1/Indexers/ReleasePushController.cs +++ b/src/Readarr.Api.V1/Indexers/ReleasePushController.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.Linq; +using System.Threading; using FluentValidation; using FluentValidation.Results; using Microsoft.AspNetCore.Mvc; @@ -22,6 +23,8 @@ namespace Readarr.Api.V1.Indexers private readonly IIndexerFactory _indexerFactory; private readonly Logger _logger; + private static readonly object PushLock = new object(); + public ReleasePushController(IMakeDownloadDecision downloadDecisionMaker, IProcessDownloadDecisions downloadDecisionProcessor, IIndexerFactory indexerFactory, @@ -51,8 +54,13 @@ namespace Readarr.Api.V1.Indexers ResolveIndexer(info); - var decisions = _downloadDecisionMaker.GetRssDecision(new List { info }); - _downloadDecisionProcessor.ProcessDecisions(decisions); + List decisions; + + lock (PushLock) + { + decisions = _downloadDecisionMaker.GetRssDecision(new List { info }); + _downloadDecisionProcessor.ProcessDecisions(decisions); + } var firstDecision = decisions.FirstOrDefault();