diff options
author | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2010-03-22 18:02:17 +0000 |
---|---|---|
committer | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2010-03-22 18:02:17 +0000 |
commit | 406010998eee82cebe6467c4f64e446ff8b79e5f (patch) | |
tree | c571984fab001b407ee0b120df4ffe53497d873e | |
parent | a9754ce49bf616c1d18556e19dd213d9ed54fcfc (diff) |
Move ModuleManager::UnloadAll out of modmanager_dynamic
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@12649 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r-- | src/modmanager_dynamic.cpp | 23 | ||||
-rw-r--r-- | src/modmanager_static.cpp | 4 | ||||
-rw-r--r-- | src/modules.cpp | 23 |
3 files changed, 23 insertions, 27 deletions
diff --git a/src/modmanager_dynamic.cpp b/src/modmanager_dynamic.cpp index 05c974063..c0114ed4e 100644 --- a/src/modmanager_dynamic.cpp +++ b/src/modmanager_dynamic.cpp @@ -282,27 +282,4 @@ void ModuleManager::LoadAll() } } -void ModuleManager::UnloadAll() -{ - /* We do this more than once, so that any service providers get a - * chance to be unhooked by the modules using them, but then get - * a chance to be removed themsleves. - * - * Note: this deliberately does NOT delete the DLLManager objects - */ - for (int tries = 0; tries < 4; tries++) - { - std::map<std::string, Module*>::iterator i = Modules.begin(); - while (i != Modules.end()) - { - std::map<std::string, Module*>::iterator me = i++; - if (CanUnload(me->second)) - { - DoSafeUnload(me->second); - } - } - ServerInstance->GlobalCulls.Apply(); - } -} - #endif diff --git a/src/modmanager_static.cpp b/src/modmanager_static.cpp index 534dcdec0..2bcd78e6c 100644 --- a/src/modmanager_static.cpp +++ b/src/modmanager_static.cpp @@ -214,8 +214,4 @@ void ModuleManager::LoadAll() } } -void ModuleManager::UnloadAll() -{ -} - #endif diff --git a/src/modules.cpp b/src/modules.cpp index bf5506d68..a111eaa92 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -395,6 +395,29 @@ void ModuleManager::DoSafeUnload(Module* mod) ServerInstance->BuildISupport(); } +void ModuleManager::UnloadAll() +{ + /* We do this more than once, so that any service providers get a + * chance to be unhooked by the modules using them, but then get + * a chance to be removed themsleves. + * + * Note: this deliberately does NOT delete the DLLManager objects + */ + for (int tries = 0; tries < 4; tries++) + { + std::map<std::string, Module*>::iterator i = Modules.begin(); + while (i != Modules.end()) + { + std::map<std::string, Module*>::iterator me = i++; + if (CanUnload(me->second)) + { + DoSafeUnload(me->second); + } + } + ServerInstance->GlobalCulls.Apply(); + } +} + std::string& ModuleManager::LastError() { return LastModuleError; |