Skip to content

Commit 3a23408

Browse files
committed
update thread safe code
1 parent 134e59f commit 3a23408

File tree

4 files changed

+9
-10
lines changed

4 files changed

+9
-10
lines changed

Include/SevenBit/DI/Details/Core/Impl/ServiceInstanceProviderRoot.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,16 @@ namespace sb::di::details
1010
: ServiceInstanceProvider(*this, options), _descriptorsMap(options.checkServiceGlobalUniqueness),
1111
_singletons(options.strongDestructionOrder)
1212
{
13-
_descriptorsMap.seal();
1413
}
1514

1615
INLINE void ServiceInstanceProviderRoot::init(ServiceProvider &serviceProvider)
1716
{
1817
ServiceInstanceProvider::init(serviceProvider);
18+
_descriptorsMap.seal();
19+
if (getOptions().threadSafe)
20+
{
21+
_mutex = std::make_unique<std::recursive_mutex>();
22+
}
1923
if (getOptions().prebuildSingletons)
2024
{
2125
prebuildSingletons();

Include/SevenBit/DI/Details/Core/ServiceInstanceProvider.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ namespace sb::di::details
1818
class EXPORT ServiceInstanceProvider : public IServiceInstanceProvider
1919
{
2020
ServiceProviderOptions _options;
21+
IServiceInstanceProviderRoot &_root;
2122
ServiceInstancesCreator _instancesCreator;
2223
ServiceAliasesCreator _aliasesCreator;
23-
IServiceInstanceProviderRoot &_root;
2424
ServiceInstancesMap _scoped;
2525

2626
public:

Include/SevenBit/DI/Details/Core/ServiceInstanceProviderRoot.hpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,6 @@ namespace sb::di::details
2727
_descriptorsMap(begin, end, options.checkServiceGlobalUniqueness),
2828
_singletons(options.strongDestructionOrder)
2929
{
30-
if (options.threadSafe)
31-
{
32-
_mutex = std::make_unique<std::recursive_mutex>();
33-
}
34-
_descriptorsMap.seal();
3530
}
3631

3732
void init(ServiceProvider &serviceProvider) override;

Include/SevenBit/DI/ServiceProvider.hpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ namespace sb::di
3232
_syncMutex = _instanceProvider->tryGetSyncMutex();
3333
}
3434

35-
ServiceProvider(const ServiceProvider &parent) = delete;
35+
ServiceProvider(const ServiceProvider &) = delete;
3636
ServiceProvider(ServiceProvider &&) = delete;
3737

38-
ServiceProvider &operator=(const ServiceProvider &parent) = delete;
39-
ServiceProvider &operator=(ServiceProvider &&parent) = delete;
38+
ServiceProvider &operator=(const ServiceProvider &) = delete;
39+
ServiceProvider &operator=(ServiceProvider &&) = delete;
4040

4141
/**
4242
* @brief Returns inner service instance provider

0 commit comments

Comments
 (0)