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:
La fonction qui lance le thread:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 struct PtrCollection { SessionsCollection* sc; Selector* sl; };
Rien que ici, je me dis que ya un gros problème au niveau de la conception de mon problème...
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);
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);
Partager