Skip to content

Commit 61423ab

Browse files
author
Chen Lihui
committed
update doc and some minor fix
Signed-off-by: Chen Lihui <lihui.chen@sony.com>
1 parent faab399 commit 61423ab

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

src/multi_library_class_loader.cpp

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ class ClassLoaderDependency
4444
protected:
4545
ClassLoaderDependency()
4646
{
47-
// make the static variable in `ClassLoader` destroyed after `active_class_loaders_`
47+
// make the static variable in `ClassLoader` destroyed after `class_loader_ptrs_`,
48+
// which is a member of ClassLoaderPtrVectorImpl defined as a static instance in the
49+
// `getClassLoaderPtrVectorImpl`
4850
class_loader::impl::getLoadedLibraryVectorMutex();
4951
class_loader::impl::getPluginBaseToFactoryMapMapMutex();
5052
class_loader::impl::getGlobalPluginBaseToFactoryMapMap();
@@ -60,15 +62,14 @@ class ClassLoaderPtrVectorImpl : public ClassLoaderDependency
6062
{
6163
public:
6264
ClassLoaderPtrVector class_loader_ptrs_;
63-
std::recursive_mutex loader_mutex_;
65+
std::mutex loader_mutex_;
6466
};
6567

6668
class MultiLibraryClassLoaderImpl
6769
{
6870
public:
6971
bool enable_ondemand_loadunload_;
7072
LibraryToClassLoaderMap active_class_loaders_;
71-
std::mutex loader_mutex_;
7273
};
7374

7475
ClassLoaderPtrVectorImpl & getClassLoaderPtrVectorImpl()
@@ -124,7 +125,7 @@ bool MultiLibraryClassLoader::isLibraryAvailable(const std::string & library_nam
124125
void MultiLibraryClassLoader::loadLibrary(const std::string & library_path)
125126
{
126127
if (!isLibraryAvailable(library_path)) {
127-
std::lock_guard<std::recursive_mutex> lock(getClassLoaderPtrVectorImpl().loader_mutex_);
128+
std::lock_guard<std::mutex> lock(getClassLoaderPtrVectorImpl().loader_mutex_);
128129
getClassLoaderPtrVectorImpl().class_loader_ptrs_.emplace_back(
129130
std::make_shared<class_loader::ClassLoader>(library_path, isOnDemandLoadUnloadEnabled())
130131
);
@@ -148,7 +149,7 @@ int MultiLibraryClassLoader::unloadLibrary(const std::string & library_path)
148149
remaining_unloads = loader->unloadLibrary();
149150
if (remaining_unloads == 0) {
150151
impl_->active_class_loaders_[library_path] = nullptr;
151-
std::lock_guard<std::recursive_mutex> lock(getClassLoaderPtrVectorImpl().loader_mutex_);
152+
std::lock_guard<std::mutex> lock(getClassLoaderPtrVectorImpl().loader_mutex_);
152153
auto & class_loader_ptrs = getClassLoaderPtrVectorImpl().class_loader_ptrs_;
153154
for (auto iter = class_loader_ptrs.begin(); iter != class_loader_ptrs.end(); ++iter) {
154155
if (iter->get() == loader) {

0 commit comments

Comments
 (0)