Implémentation de async (c++)
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 :
Code:
1 2
| async(sumSegment, currentSegment);
getFuturValueOfSumOf(currentSegment); |
Voici l'implémentation du deuxième :
Code:
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;
} |