move erase to after dlclose
This commit is contained in:
17
src/App.cpp
17
src/App.cpp
@@ -22,13 +22,9 @@ App::~App() {
|
||||
std::cout << "\nExiting...\n";
|
||||
for(auto it = modules.begin(); it != modules.end(); it++) {
|
||||
void* handle = (*it)->getHandle();
|
||||
std::cout << "retrieved handle\n";
|
||||
delete *it;
|
||||
std::cout << "deleted module\n";
|
||||
dlclose(handle);
|
||||
std::cout << "closed lib\n";
|
||||
it = modules.erase(it);
|
||||
std::cout << "erased list node\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,22 +76,17 @@ void App::load(std::string lib) {
|
||||
modules.end()++;
|
||||
}
|
||||
|
||||
void App::unload(decltype(Module::self) it) {
|
||||
void App::unload(std::list<Module*>::iterator it) {
|
||||
void* h = (*it)->getHandle();
|
||||
std::cout << "retrieved handle\n";
|
||||
|
||||
modules.erase((*it)->self);
|
||||
std::cout << "erased module.self";
|
||||
|
||||
std::cout << "Attempting to delete module: " << (*it)->getName() << std::endl;
|
||||
delete *it;
|
||||
std::cout << "deleted module\n";
|
||||
|
||||
dlclose(h);
|
||||
std::cout << "successfully dlclosed\n";
|
||||
|
||||
modules.erase((*it)->self);
|
||||
}
|
||||
|
||||
void App::stopModule(decltype(Module::self) it) {
|
||||
void App::stopModule(std::list<Module*>::iterator it) {
|
||||
toClose.push_back(*it);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user