C'est une constante préprocesseur définie dans boost/config.hpp.Citation:
Bon il reste à vérifier d'où sort BOOST_HAS_WINTHREADS
Version imprimable
C'est une constante préprocesseur définie dans boost/config.hpp.Citation:
Bon il reste à vérifier d'où sort BOOST_HAS_WINTHREADS
Resalut !
Désolé de ne pas répondre trop vite mais je n'ai pas internet à mon appart.
Bon comme je m'en doutait un peu le free n'est donc pas une méthode appropriée lorsque l'on fait des new j'ai donc réalisé ce que tu suggérais c'est à dire une classe abstraite avec un destructeur virtuel don je fais hériter tous les objets que je veux pouvoir détruire de façon asynchrone.
Reste plus qu'a trouver comment définir la priorité d'un thread sous boost et on pourra dire que mon post aura été très fructueux pour moi :D ( même si c'est déja le cas ;) !!)
@+
Seb
Bon je viens de jeter un oeil apparemment la definition de la priorité est difficilement portable et c'est donc pour cela qu'elle n'est pas incluse dans boost ... à ce que j'ai compris je vais don rajouter un petit #ifdef WIN_32 et utiliser la methode SetThreadPriority() pour le moment !!!
Si vous avez plus d'infos je prends sinon merci quand même !
Arf malheureusement je n'ai pas boost d'installé sur mon compilateur. Donc je ne peut pas t'aider.
Juste un petit conseil, n'appelles pas SetThreadPriority directement.
Utilise une fonction à toi comme "PortableThreadPriority" qui servira d'intermédiaire. Comme ça le jour où boost intègrera cette fonctionnalité, tu n'aura qu'une seule ligne à modifier au lieu de partout dans ton code.
Alors j'ai les 2 définitions suivantes, suivant l'environement. Pour win32;hpp :Citation:
Envoyé par mchk0123
Pour Cygwin.hpp :Code:
1
2
3 #ifndef BOOST_HAS_PTHREADS # define BOOST_HAS_WINTHREADS #endif
Bref, dans la majorité des cas, boost utilise le Sleep de l'API win32.Code:
1
2
3
4
5
6
7
8 #if defined(_POSIX_THREADS) && (_POSIX_THREADS+0 >= 0) && !defined(BOOST_HAS_WINTHREADS) ... #else # if !defined(BOOST_HAS_WINTHREADS) # define BOOST_HAS_WINTHREADS # endif # define BOOST_HAS_FTIME #endif
Tu peux abuser, mais l'interface de boost::thread est très limitée :Citation:
@Ulmo : Je vais abuser, mais étant donné que je n'ai pas d'installation de Boost sous la main, tu pourrais faire un cherche sur boost::thread.h pour voir s'il existe une fonction Low Level similaire à "SetThreadPriority()" ?
Sebastien P. t'en remercie par avance :lol:.
Edit : Et comme les données sur le thread sont privée, c'est pas évident d'aller appeler SetThreadPriority() dessus...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class BOOST_THREAD_DECL thread : private noncopyable { public: thread(); explicit thread(const function0<void>& threadfunc); ~thread(); bool operator==(const thread& other) const; bool operator!=(const thread& other) const; void join(); static void sleep(const xtime& xt); static void yield(); private: ... };
Arf ... va falloir que Sebastien P. écrive du code "beta" (ie. non garantie qu'avec la prochaine version de boost ça marche encore).
Salut,
Juste pour cerner un peu : c'est pour se familiariser avec les processus légers ou c'est vraiment la solution trouvée la plus simple à un vrai problème (genre ça rame :p) ?Citation:
Envoyé par Sébastien P
MAT.