Использую библиотеку Poco в своем проекте. А именно подключение к mysql. Код простой, используется в одном из thread:
try {
Poco::Data::Session session(Poco::Data::MySQL::Connector::KEY,"host=localhost;user=user;password=password;db=db");
какие-то действия
}
catch (const Poco::Data::MySQL::StatementException &se) {
std::cout << "error" << std::endl;
}
catch (const Poco::Data::ConnectionFailedException &ce) {
std::cout << "error" << std::endl;
}
В главном процессе использую:
Poco::Data::MySQL::Connector::registerConnector();
какие-то действия, работа thread
Poco::Data::MySQL::Connector::unregisterConnector();
Почему в главном. Потому-что есть 2 thread где нужен mysql. Если использовать в обоих thread, то почему-то второй thread перестает подключаться к mysql.
Когда делаю прерывание выполнения программы (например через Ctrl+C), то на выходе получаю ошибку Error in my_thread_global_end(): 1 threads didn't exit. Появляется она на методе unregisterConnector.
У меня впечатление, что в коде thread необходимо после действий в конструкции try закрыть соединение mysql. По мануалу не совсем понял как. Метод session.clear(); не помогает.
Может надо как-то удалить/обнулить переменную? Только как?
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости