1
0
mirror of https://github.com/TomHarte/CLK.git synced 2026-03-15 01:16:40 +00:00

Ensures thread safety of access to machines array.

This commit is contained in:
Thomas Harte
2018-02-10 19:38:26 -05:00
parent eb39617ad0
commit e1cab52c84
7 changed files with 39 additions and 22 deletions

View File

@@ -10,19 +10,20 @@
using namespace Analyser::Dynamic;
MultiConfigurationTarget::MultiConfigurationTarget(const std::vector<std::unique_ptr<::Machine::DynamicMachine>> &machines) :
machines_(machines) {}
MultiConfigurationTarget::MultiConfigurationTarget(const std::vector<std::unique_ptr<::Machine::DynamicMachine>> &machines) {
for(const auto &machine: machines) {
ConfigurationTarget::Machine *configuration_target = machine->configuration_target();
if(configuration_target) targets_.push_back(configuration_target);
}
}
void MultiConfigurationTarget::configure_as_target(const Analyser::Static::Target &target) {
}
bool MultiConfigurationTarget::insert_media(const Analyser::Static::Media &media) {
bool inserted = false;
for(const auto &machine : machines_) {
ConfigurationTarget::Machine *configuration_target = machine->configuration_target();
if(configuration_target) {
inserted |= configuration_target->insert_media(media);
}
for(const auto &target : targets_) {
inserted |= target->insert_media(media);
}
return inserted;
}