Сообщение Re[4]: std::thread, std::condition_variable и dll от 14.06.2021 11:39
Изменено 14.06.2021 11:45 Doom100500
Re[4]: std::thread, std::condition_variable и dll
Здравствуйте, Videoman, Вы писали:
V>Ну я подебажил ваш код. Так и есть, после выхода из main процесса начинает разрушаться CRT и там уже зовется DllMain из него. Т.е. ресурсы уже начинают отлетать потихоньку, а вы ими продолжаете пользоваться в DLL, тем же std::out и т.д. Все что нужно сделать это вызвать release для w перед выходом из main и все начинает работать как вы хотите.
Спасибо.
Это именно тот вывод, который я сделал после Вашего и ononim-ного ответа. Решается ручным управлением времени жизни из вызывающей стороны (тогда unque_ptr тоже не имеет смысла).
Я тоже когда-то Рихтера читал, только забыл уже.
V>Ну я подебажил ваш код. Так и есть, после выхода из main процесса начинает разрушаться CRT и там уже зовется DllMain из него. Т.е. ресурсы уже начинают отлетать потихоньку, а вы ими продолжаете пользоваться в DLL, тем же std::out и т.д. Все что нужно сделать это вызвать release для w перед выходом из main и все начинает работать как вы хотите.
Спасибо.
Это именно тот вывод, который я сделал после Вашего и ononim-ного ответа. Решается ручным управлением времени жизни из вызывающей стороны (тогда unque_ptr тоже не имеет смысла).
Я тоже когда-то Рихтера читал, только забыл уже.
Re[4]: std::thread, std::condition_variable и dll
Здравствуйте, Videoman, Вы писали:
V>Ну я подебажил ваш код. Так и есть, после выхода из main процесса начинает разрушаться CRT и там уже зовется DllMain из него. Т.е. ресурсы уже начинают отлетать потихоньку, а вы ими продолжаете пользоваться в DLL, тем же std::out и т.д. Все что нужно сделать это вызвать release для w перед выходом из main и все начинает работать как вы хотите.
Спасибо.
Это именно тот вывод, который я сделал после Вашего и ononim-ного ответа. Решается ручным управлением времени жизни из вызывающей стороны (тогда unque_ptr тоже не имеет смысла).
Я тоже когда-то Рихтера читал, только забыл уже.
PS. В реальном коде нету std::cout
V>Ну я подебажил ваш код. Так и есть, после выхода из main процесса начинает разрушаться CRT и там уже зовется DllMain из него. Т.е. ресурсы уже начинают отлетать потихоньку, а вы ими продолжаете пользоваться в DLL, тем же std::out и т.д. Все что нужно сделать это вызвать release для w перед выходом из main и все начинает работать как вы хотите.
Спасибо.
Это именно тот вывод, который я сделал после Вашего и ononim-ного ответа. Решается ручным управлением времени жизни из вызывающей стороны (тогда unque_ptr тоже не имеет смысла).
Я тоже когда-то Рихтера читал, только забыл уже.
PS. В реальном коде нету std::cout