Salut les pros !
J'ai en quelques sortes un soucis algorithmique.
en gros, dans un thread, j'ai une map<FD, evenement> ;
Je fais un select() bloquant sur un fd_set contenant lesdits FDs en lecture (rien pour ecriture et exception):
res = select(nfds +1, &monFdset, NULL,NULL,NULL);
Et derriere j'ai une méthode TraiteEvenement(evenement).
Mon soucis c'est que la seule chose que je connaisse pour traiter des fd_set, c'est la macro FD_ISSET(fd, fdset) qui me dit si oui ou non le fd passé en parametre est dans fdset. Et j'aimerai éviter d'itérer a travers chaque evenement de ma map pour trouver les seuls qui sont déclenchés...
j'aimerai en gros faire :
Code :
- for (int i = 0 ; i<res; i++)
- {
- TraiteEvenement(maMap[monFdset[i]]);
- }
|
et pas :
Code :
- for (int i = 0; i <maMap.size();i++)
- {
- if (FD_ISSET(i,monFdSet)
- {
- TraiteEvenement(maMap[i]);
- }
- }
|
Mais apparamment c'est pas aussi simple que ca ...
Y'a un bon connaisseur de fd_set dans la salle ?
merci d'avance