Poco Mutex вызывает необработанное исключение после закрытия программы

Я получаю необработанное исключение, если закрою свою программу, используя мьютексы Poco.

Я использую глобальный

 Poco::Mutex mymutex ;

в моем файле cpp, потому что у меня есть статический класс для регистрации (я также пытался объявить его как статический член, но я получил ту же ошибку).

Соответствующая часть моего кода (это статическая функция):

void Log::log(std::string message)
{
try
{
Poco::Mutex::ScopedLock lock(mymutex);

std::ofstream f("log.txt", std::ios_base::app) ;
f << message << std::endl ;
f.close() ;
}
catch (...)
{
}
}

Эта часть кода прекрасно работает в моей программе (нет строк друг на друга, как до использования мьютексов), но после закрытия программы я получаю следующее сообщение об ошибке:

Unhandled exception at 0x77c3a710 in myprogram.exe: 0xC0000005:
Access violation writing location 0x00000014.

Я также пытался использовать mymutex.lock () и mymutex.unlock () до и после записи в файл, но я получил ту же ошибку.

И я также попробовал этот код:

while(!mymutex.tryLock())
Poco::Thread::sleep(30);

но это привело к бесконечному циклу, программа не остановилась после закрытия своего окна.

Я использую Visual Studio 2010 и Poco 1.4.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]