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

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
class singleton
{
public
    static singleton &current()
   {
        static singleton _singl;
        return _singl
   }
};
Malheureusement, ceci pose probl�me si un utilisateur appel la m�thode exit().

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