Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] Peut-on savoir quel sf::Thread est en train d'utiliser une fonction?  (Lu 3265 fois)

0 Membres et 1 Invité sur ce sujet

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Bonjour à tous,

Juste une question très simple, je présente mes excuses si la réponse est évidente mais je n'ai pas trouvé.

Imaginons qu'on a 2 sf::Thread : thread1 et thread2, et une fonction, function1. Les deux threads peuvent utiliser function1 (avec un mutex bien sûr). Y-a-t-il moyen de savoir quel thread est en train de l'utiliser ?

Merci d'avance pour votre aide
« Modifié: Mai 17, 2015, 10:29:44 am par Macrob »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Peut-on savoir quel sf::Thread est en train d'utiliser une fonction?
« Réponse #1 le: Mai 16, 2015, 09:07:16 pm »
Pas aussi facilement que si tu utilisais std::thread.
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : Peut-on savoir quel sf::Thread est en train d'utiliser une fonction?
« Réponse #2 le: Mai 16, 2015, 09:13:41 pm »
Mince ! "Pas aussi facilement", ça veut dire qu'il y aurait quand même un moyen ? Si c'est trop compliqué à expliquer pas de souci  :D

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Peut-on savoir quel sf::Thread est en train d'utiliser une fonction?
« Réponse #3 le: Mai 17, 2015, 07:22:45 am »
La solution simple mais pas toujours adaptée : tu peux passer un paramètre supplémentaire à ta fonction, qui identifie le thread qui l'a appelé.

Sinon, pour une solution non-intrusive, il faut utiliser une variable locale de thread (sf::ThreadLocalPtr), à laquelle tu donnes une valeur différente dans chaque thread, et que tu testes dans la fonction.

Mais là encore, si ton compilo n'est pas préhistorique, utilise plutôt les équivalents qui sont disponibles dans la bibliothèque standard.
Laurent Gomila - SFML developer

Macrob

  • Jr. Member
  • **
  • Messages: 52
    • Voir le profil
Re : Peut-on savoir quel sf::Thread est en train d'utiliser une fonction?
« Réponse #4 le: Mai 17, 2015, 10:29:25 am »
Je ne connaissais pas sf::ThreadLocalPtr, merci beaucoup !
Je mets la discussion comme résolue merci Laurent  :D