begin process at 2012 05 28 09:16:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

arreter un select bloquand depuis un autre thread


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

arreter un select bloquand depuis un autre thread

samedi 25 septembre 2004 à 23:32:31 | arreter un select bloquand depuis un autre thread

cosmobob

salut,
sous windows, j'ai pas de probleme, mais sous linux, quel est le moyen pour qu'un thread qui bloque sur un select bloquant se débloque? shutdown(sock, 2) et close(sock) semblent sans effet...

en fait j'en suis la:

// bind et listen sur le socket viennent d'etre fait.
fd_set set;
FD_ZERO(&set);
FD_SET(sock,&set);
if (select((int) sock + 1,&set,0,0,0) == 1) // ca bloque ici jusqu'a ce qu'un client arrive.
{
// etc.
}

depuis un autre thread, j'essaie de fermer sock, mais ca semble pas débloquer le select...
qqun sait comment faire ?
merci ;)
vendredi 11 novembre 2005 à 22:51:32 | Re : arreter un select bloquand depuis un autre thread

DarkEbola

salutation.
j'ai exactement le meme probleme ...
si tu as trouvé une solution ... n'hesite pas a m'en faire part :)


samedi 12 novembre 2005 à 13:58:32 | Re : arreter un select bloquand depuis un autre thread

cosmobob

salut,
oui j'ai trouvé,
la réponse c'est que c'est pas possible.
la 'solution' c'est de faire un select avec un timeout de 100ms par exemple (ou moins, mais bon un timeout < 10ms est pas pertinent (c-a-d que ton os va pas forcément attendre exactement 10ms, parce que la 'résolution' de l'attente est pas assez bonne)), et tu atteins ton timeout total en faisant une boucle.

A chaque iteration tu regardes si un autre thread (avec une variable partagée, ou globale) te demande d'arreter, et si oui tu te casses de la boucle, et tu sors du thread.

voila... la sortie du thread qui fait le select sera pas instantannée; mais prendra 100ms (ou moins) donc c'est completement acceptable.

si t'as une autre idée, ou qu'un jour tu trouves comment faire mieux, dis moi ... si t'as pas pigé tout ce que j'ai raconté, demande moi aussi

allez a+


Cette discussion est classée dans : set, select, thread, sock, fd


Répondre à ce message

Sujets en rapport avec ce message

select, FD_SET, FD_ISSET, FD_CLR sous windows ? [ par RV2931 ] Bonjour,je suis en train d'essayer de réutiliser une librairie mais dans certains fichiers, ils utilisent ces fonctions "select, FD_SET, FD_ISSET, FD_ winsock et WSAAsyncSelect [ par lektrosonic ] bonjour, j'ai code deux petites applications (client et serveur) et aux deux g applique la WSAAsyncSelect pour FD_READ, FD_CLOSE , FD_CONNECT (pour le Problème serveur TCP en C [ par lenneth666 ] BOnjour j'ai un petit problème. Je voulais faire en sorte que mon serveur puisse gérer la réception et l'envoi de message en parralèle, mais celà ne Probleme de Thread [ par Stermy ] Bonjour,J'ai un léger probleme, lorsque mon thread de service se lance, le second se bloque sur l'accept() qui retourne une erreur.Voici le codeDans l PING sous protocole TCP [ par ivdz ] Bonjour, J'ai besoin de votre aide. Je travaille sous C++ Builder 6. Je dois envoyer un message ICMP de Type Echo Request puis récupérer le message thread ne répondant pas sous MFC [ par seito ] bonjours,je suis en train de concevoir une application qui me permet d'éffectuer un chat en réseau sous "Visual C++ 6.0" le problême c'est que quand j Entree std sous Windows [ par mgra ] Bonjour, Dans un des mes programmes, je dois surveiller un ensemble de descripteurs (plusieurs sockets et l'entrée std). J'initialise donc le tout PLEASE REPONDEZ MOI ! ! ! [ par marelo87 ] bonjour, voila je suis en train de programmer ma premiere appli reseau (tte simple)....mais pour me compliquer un peu la tache je voulais faire en sor Probleme socket en telnet [ par tigood42 ] Bonjour,je suis en train d'apprendre le fonctionnement des sockets... J'ai créé un serveur qui accepte les multiconnexions simultanément (et bientot a VC++ : Ecrire un fichier BMP [ par Ayla_21 ] Bonjour tout le monde,Après avoir morflé sur la librairie jpeg, que j'ai fini par comprendre après moults désagréments. je m'attaque au format bmp.Je


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,654 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales