Skip to content

Commit

Permalink
Merge branch 'master' into development/METROL-940
Browse files Browse the repository at this point in the history
  • Loading branch information
sebaszm authored Sep 9, 2024
2 parents 9a2d314 + 8ded962 commit e7e7aeb
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 7 deletions.
11 changes: 6 additions & 5 deletions Source/extensions/processcontainers/ContainerAdministrator.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,20 +77,21 @@ namespace ProcessContainers {
friend class ContainerProducerRegistrationType;

private:
template<typename PRODUCER>
void Announce(const IContainer::containertype& type)
void Announce(const IContainer::containertype type, IContainerProducer* producer)
{
ASSERT(producer != nullptr);

_adminLock.Lock();

ASSERT(_producers.find(type) == _producers.end());

// Announce another container runtime...
_producers.emplace(type, new PRODUCER());
_producers.emplace(type, producer);

_adminLock.Unlock();
}

void Revoke(const IContainer::containertype& type)
void Revoke(const IContainer::containertype type)
{
_adminLock.Lock();

Expand All @@ -104,7 +105,7 @@ namespace ProcessContainers {

private:
mutable Core::CriticalSection _adminLock;
std::map<IContainer::containertype, std::unique_ptr<IContainerProducer>> _producers;
std::map<IContainer::containertype, IContainerProducer*> _producers;
Core::ProxyListType<IContainer> _containers;
};

Expand Down
8 changes: 6 additions & 2 deletions Source/extensions/processcontainers/ContainerProducer.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,16 +36,20 @@ namespace ProcessContainers {
ContainerProducerRegistrationType& operator=(ContainerProducerRegistrationType&&) = delete;

ContainerProducerRegistrationType()
: _producer()
{
ContainerAdministrator::Instance().Announce<PRODUCER>(CONTAINERTYPE);
ContainerAdministrator::Instance().Announce(CONTAINERTYPE, &_producer);
}

~ContainerProducerRegistrationType()
{
ContainerAdministrator::Instance().Revoke(CONTAINERTYPE);
}

private:
PRODUCER _producer;
};

}
} // namespace ProcessContainers

}

0 comments on commit e7e7aeb

Please sign in to comment.