Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1240 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  boost::thread... corrigez moi.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

boost::thread... corrigez moi.

n°1043068
xterminhat​e
Si vis pacem, para bellum.
Posté le 11-04-2005 à 15:20:13  profilanswer
 

Voila typiquement le code que je souhaiterais faire tourner.... Parce qu'un boost::mutex est non copiable, comment je fais pour utiliser un objet thread safe dans un boost::thread ? Ma soltion (que je ne donne pas encore) cause un assert à l'execution : assert généré au sein du fichier source mutex.impl.
 
Merci de votre aide.
 

Code :
  1. #include"windows.h"
  2. #include"boost/thread/thread.hpp"
  3. using namespace boost;
  4. #include<cassert>
  5. #include<iostream>
  6. using namespace std;
  7. typedef mutex::scoped_lock lock;
  8. // une classe thread safe basée sur un mutex BOOST
  9. struct value
  10. {
  11. void set( bool const & arg )
  12. {
  13.  lock lk( mtx );
  14.  val = arg;
  15. }
  16. bool get()
  17. {
  18.  lock lk( mtx );
  19.  return val;
  20. }
  21. private:
  22. bool val;
  23. mutex mtx;
  24. };
  25. // f crée une instance de la classe value et l'utilise...
  26. struct f
  27. {
  28. void operator()()
  29. {
  30.  v.set( true );
  31.  Sleep(1000);
  32.  assert( v.get() == true );
  33.  v.set( false );
  34.  Sleep(1000);
  35.  assert( v.get() == false );
  36. }
  37. private:
  38. value v;
  39. };
  40. // g crée simplement un thread de type f
  41. struct g
  42. {
  43. void operator()()
  44. {
  45.  f f_inst;
  46.  thread th( f_inst); // ERREUR, MUTEX NON COPIABLE !!!!!
  47.  th.join();
  48. }
  49. };
  50. // main crée simplement un thread de type g
  51. int main()
  52. {
  53. g g_inst;
  54. thread th( g_inst);
  55. th.join();
  56. }

mood
Publicité
Posté le 11-04-2005 à 15:20:13  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  boost::thread... corrigez moi.

 

Sujets relatifs
Probleme de thread qui bug quand on bouge la souristhread pool
Créer un Thread, c'est bien et le fermer...?thread
[Java/C#] Arret d'un Thread par le GCrécupérer un thread
[MFC]Thread[Delphi] Pourquoi ce thread ne fonctionne pas ?
Passage paramètre à une thread[linux 2.4 usb] isochrone implique-t-il thread ?
Plus de sujets relatifs à : boost::thread... corrigez moi.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR