Fixed multithreading mutation issue
This commit is contained in:
@@ -218,6 +218,7 @@ public class SearchdomainHelper(ILogger<SearchdomainHelper> logger, DatabaseHelp
|
||||
{
|
||||
searchdomain.ReconciliateOrInvalidateCacheForNewOrUpdatedEntity(preexistingEntity);
|
||||
}
|
||||
searchdomain.UpdateModelsInUse();
|
||||
return preexistingEntity;
|
||||
}
|
||||
else
|
||||
@@ -243,6 +244,7 @@ public class SearchdomainHelper(ILogger<SearchdomainHelper> logger, DatabaseHelp
|
||||
};
|
||||
entityCache.Add(entity);
|
||||
searchdomain.ReconciliateOrInvalidateCacheForNewOrUpdatedEntity(entity);
|
||||
searchdomain.UpdateModelsInUse();
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -216,6 +216,11 @@ public class Searchdomain
|
||||
return queryEmbeddings;
|
||||
}
|
||||
|
||||
public void UpdateModelsInUse()
|
||||
{
|
||||
modelsInUse = GetModels([.. entityCache]);
|
||||
}
|
||||
|
||||
private static float EvaluateEntityAgainstQueryEmbeddings(Entity entity, Dictionary<string, float[]> queryEmbeddings)
|
||||
{
|
||||
List<(string, float)> datapointProbs = [];
|
||||
@@ -237,6 +242,8 @@ public class Searchdomain
|
||||
public static List<string> GetModels(List<Entity> entities)
|
||||
{
|
||||
List<string> result = [];
|
||||
lock (entities)
|
||||
{
|
||||
foreach (Entity entity in entities)
|
||||
{
|
||||
foreach (Datapoint datapoint in entity.datapoints)
|
||||
@@ -251,6 +258,7 @@ public class Searchdomain
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user