Reduced scope of lock used in GetExpiredOfferItems()

This commit is contained in:
Chomp
2025-08-06 17:04:49 +01:00
parent 654fd63355
commit 3f405fc67e
@@ -351,30 +351,33 @@ public class RagfairOfferHolder(
/// <returns>Expired offer assorts</returns>
public IEnumerable<List<Item>> GetExpiredOfferItems()
{
List<MongoId> expiredOfferIdsCopy;
lock (_expiredOfferIdsLock)
{
// list of lists of item+children
var expiredItems = new List<List<Item>>();
foreach (var expiredOfferId in _expiredOfferIds)
expiredOfferIdsCopy = _expiredOfferIds.ToList();
}
// list of lists of item+children
var expiredItems = new List<List<Item>>();
foreach (var expiredOfferId in expiredOfferIdsCopy)
{
var offer = GetOfferById(expiredOfferId);
if (offer is null)
{
var offer = GetOfferById(expiredOfferId);
if (offer is null)
{
_logger.Warning($"Expired offerId: {expiredOfferId} not found, skipping");
continue;
}
if (offer.Items?.Count == 0)
{
_logger.Error($"Expired offerId: {expiredOfferId} has no items, skipping");
continue;
}
expiredItems.Add(offer.Items);
_logger.Warning($"Expired offerId: {expiredOfferId} not found, skipping");
continue;
}
return expiredItems;
if (offer.Items?.Count == 0)
{
_logger.Error($"Expired offerId: {expiredOfferId} has no items, skipping");
continue;
}
expiredItems.Add(offer.Items);
}
return expiredItems;
}
/// <summary>