Bonjour tout le monde !

Voilà je développe un logiciel qui doit etre portable sur linux et windows.
Pour cela j'utilise eclipse avec un module c++ et mingw pour compiler.

J'ai plusieurs petit soucis.

1/ Tout d'abord sur linux pour réaliser des timers j'utilise la fonction nanosleep.
En mode Debug elle fonctionne parfaitement mais pas quand je lance le programme normalement quelqu'un à une idée ?

2/ Sur windaube comme la fonction nanosleep n'existe pas j'ai trouvé une méthode qui utilise la fonction select. Or elle ne fonctionne pas elle me renvoie toujours -1.
voici le code pour select :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
select(0,NULL,NULL,NULL,timeout);
j'utilise ws2_32.h et j'inclue la lib libws2_32.

3/ Pour recevoir j'utilise la libpcap.
Malheureusement je me suis apercu que la fonction pcpa_loop ne possède pas de timeout. Pour réaliser ce timeout j'ai décidé d'utiliser des threads
(pthread sur linux pour Windaube je sais pas encore).
Pour réaliser mon timeout dans ma fonction recevoir je créer un thread extrèment simple : il ne contient en parti que la fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
pcap_loop(adhandle,0,NULL);
une fois le thread creer dans ma fonction recevoir je lance ma fonction attendre. Une fois la fonction attendre terminé j'annule le thread avec ma fonction reception.
Cependant en parcourant le forum j'ai remarqué qu'utiliser la fonction pthread_cancel est mauvais... de plus je me suis apercu que mon code n'est pas bon car si je recois une trame et que pendant l'analyse de la trame recu ma fonction attendre se termine, je ne terminerai pas l'analyse de la trame je perderai donc des données.
Mais ce qui m'agace le plus c'est qu'il n'attend pas assez ! Je lui demande d'attendre 10s dans un test mais il n'attend pas du tout !

Merci d'avance pour vos réponses.