Bonjour a tous,
Je cherche a lire une implémentation simple de la fonction async de la STL. Malheureusement, lorsque je "jump to definition", je tombe sur un code qui m'est complètement opaque : Beaucoup de macro, de renvois, etc etc.
Je me suis essayé a implémenter cette fonction (thread, detach, return futur). Comment puis-je l'améliorer ?
Merci d'avance pour tous vos conseils / remarques !
Le code :
A priori, ces deux appels devraient faire la meme chose :
Voici l'implémentation du deuxième :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 async(sumSegment, currentSegment); getFuturValueOfSumOf(currentSegment);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 future<int> getFuturValueOfSumOf(Segment& seg){ packaged_task<int(const Segment&)> pt0 {&sumSegment}; //llvm bug : use & future<int> futur( pt0.get_future()); thread calculateSumOfSegment{move(pt0), seg}; //on lance le calcul calculateSumOfSegment.detach(); //on n'attend pas qu'il finisse return futur; }
Partager