Avoid concurrent config file writes

This commit is contained in:
kaso17
2017-01-05 18:08:10 +01:00
parent 175bea9269
commit 8e5538a11e

View File

@@ -28,6 +28,8 @@ namespace Jackett.Services
public class IndexerManagerService : IIndexerManagerService public class IndexerManagerService : IIndexerManagerService
{ {
private static readonly object configWriteLock = new object();
private IContainer container; private IContainer container;
private IConfigurationService configService; private IConfigurationService configService;
private Logger logger; private Logger logger;
@@ -176,6 +178,8 @@ namespace Jackett.Services
} }
public void SaveConfig(IIndexer indexer, JToken obj) public void SaveConfig(IIndexer indexer, JToken obj)
{
lock (configWriteLock)
{ {
var uID = Guid.NewGuid().ToString("N"); var uID = Guid.NewGuid().ToString("N");
var configFilePath = GetIndexerConfigFilePath(indexer); var configFilePath = GetIndexerConfigFilePath(indexer);
@@ -232,6 +236,7 @@ namespace Jackett.Services
logger.Error(string.Format("Error while moving {0} to {1}: {2}", configFilePathTmp, configFilePath, ex.ToString())); logger.Error(string.Format("Error while moving {0} to {1}: {2}", configFilePathTmp, configFilePath, ex.ToString()));
} }
} }
}
public void SortIndexers() public void SortIndexers()
{ {