Re: std::thread, std::condition_variable и dll
От: Videoman Россия https://hts.tv/
Дата: 13.06.21 21:45
Оценка: 4 (1)
Здравствуйте, Doom100500, Вы писали:

D>Привет эксперты.

D>Если бы не dll, то это не было бы в прикладных вопросах, но, если нет dll, то и проблема не воспроизводится.

Можно конечно разбираться что конкретно происходит при выходе (скорее всего deadlock), но в общем случае в DLL Main нельзя использовать функции из других системных DLL.
Вот что написано в документации!

Because DLL notifications are serialized, entry-point functions should not attempt to communicate with other threads or processes. Deadlocks may occur as a result.

The entry-point function should perform only simple initialization or termination tasks. It must not call the LoadLibrary or LoadLibraryEx function (or a function that calls these functions), because this may create dependency loops in the DLL load order. This can result in a DLL being used before the system has executed its initialization code. Similarly, the entry-point function must not call the FreeLibrary function (or a function that calls FreeLibrary) during process termination, because this can result in a DLL being used after the system has executed its termination code.

А все эти вещи могут возникнуть в вашем коде.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.