[DATFromDirParallel] Add locks

This commit is contained in:
Matt Nadareski
2016-09-07 10:27:38 -07:00
parent 5b81ec306d
commit 3e104ab860

View File

@@ -209,6 +209,9 @@ namespace SabreTools
{ {
// Add the list if it doesn't exist already // Add the list if it doesn't exist already
string key = rom.HashData.Size + "-" + rom.HashData.CRC; string key = rom.HashData.Size + "-" + rom.HashData.CRC;
lock (_datdata.Files)
{
if (!_datdata.Files.ContainsKey(key)) if (!_datdata.Files.ContainsKey(key))
{ {
_datdata.Files.Add(key, new List<Rom>()); _datdata.Files.Add(key, new List<Rom>());
@@ -217,6 +220,8 @@ namespace SabreTools
_datdata.Files[key].Add(rom); _datdata.Files[key].Add(rom);
_logger.User("File added: " + Path.GetFileNameWithoutExtension(item) + Environment.NewLine); _logger.User("File added: " + Path.GetFileNameWithoutExtension(item) + Environment.NewLine);
} }
}
else else
{ {
_logger.User("File not added: " + Path.GetFileNameWithoutExtension(item) + Environment.NewLine); _logger.User("File not added: " + Path.GetFileNameWithoutExtension(item) + Environment.NewLine);
@@ -308,10 +313,13 @@ namespace SabreTools
{ {
// Add the list if it doesn't exist already // Add the list if it doesn't exist already
string key = rom.HashData.Size + "-" + rom.HashData.CRC; string key = rom.HashData.Size + "-" + rom.HashData.CRC;
lock (_datdata.Files)
{
if (!_datdata.Files.ContainsKey(key)) if (!_datdata.Files.ContainsKey(key))
{ {
_datdata.Files.Add(key, new List<Rom>()); _datdata.Files.Add(key, new List<Rom>());
} }
}
try try
{ {
@@ -391,7 +399,10 @@ namespace SabreTools
rom.Name = romname; rom.Name = romname;
// Add the file information to the DAT // Add the file information to the DAT
lock (_datdata.Files)
{
_datdata.Files[key].Add(rom); _datdata.Files[key].Add(rom);
}
_logger.User("File added: " + romname + Environment.NewLine); _logger.User("File added: " + romname + Environment.NewLine);
} }