Bonjour !

Etant en cure intensive de désingletonisation, j'ai besoin de passer plus paramètres à un pthread!
Or, la fonction qui lance les thread n'en prend qu'un seul, donc:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
struct PtrCollection
{
    SessionsCollection* sc;
    Selector* sl;
};
La fonction qui lance le thread:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
    // Threads
    PtrCollection* pc = (PtrCollection*)malloc(sizeof(PtrCollection*)) ;
    pc->sc = (SessionsCollection*)malloc(sizeof(SessionsCollection*));//sessions;
    pc->sc = sessions;
 
    pc->sl = (Selector*)malloc(sizeof(Selector*));//sessions;
    pc->sl = selector;
    pthread_create(&t_networker, NULL, Networker, pc);
Rien que ici, je me dis que ya un gros problème au niveau de la conception de mon problème...
Et c'est evident que le passage ne marche pas, crash au démarrage du thread.

Cette solution est-elle convenable?
Faudrait-il que je fasse une classe mère à chaque classe (ici: SessionsCollection & Selector) et une classe de collection contenant un vector<classMere>, et que dans mon thread je puisse faire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
classDeCollection* cdc = reinterpret_cast<classDeCollection*>(argument)
Selector* sl = cdc->get(0); // retourner le vecteur.at(0);