Bonjour.
j'ai une dll qui utilise un singleton pour manager des ressources. Ces ressources instancient des std::thread, std::mutex et std::shared_mutex.
Le singleton est instanci� lors de l'appel � une fonction static
Malheureusement, ceci pose probl�me si un utilisateur appel la m�thode exit().
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9 class singleton { public static singleton ¤t() { static singleton _singl; return _singl } };
Lors de l'appel � exit, la destruction du singleton crash car les thread se sont arr�t�s sans lib�rer les mutex.
La seule mani�re que j'ai trouv�e est de modifier l'instanciation du singleton en utilisant un pointeur et d'ajout� une fonction pour le d�truire(doit �tre appel� par l'utilisateur avant de sortir du main). Mais lors d'un exit rien n'est lib�r� proprement.
Y a t'il une possibilit� d�emp�cher l�arr�t brutale des thread lors de l'appel � un exit et de pouvoir lib�rer proprement les donn�es de ma dll?
merci,
Yan
Partager