Selon moi, attendre un délai d'attente signifie "avoir" un délai d'attente. De cette façon, je m'attendrais à ce que poll() effectivement vérifie les descripteurs de fichier, puis attend si personne n'est prêt jusqu'à un délai de 0 milliseconde (pas d'attente du tout). Mais le cas est qu'il signalera simplement si un fd est disponible.
J'ai également vérifié le code source de Linux et à ma connaissance, c'est ainsi que cela fonctionne :calcule d'abord le "futur" point d'attente, puis vérifie les descripteurs de fichiers, puis s'il n'y en a pas de disponible, attend le délai d'attente spécifié.
Cordialement,
Il reviendra immédiatement :
Si le délai d'attente est supérieur à zéro, il spécifie un intervalle maximal (en millisecondes) pour attendre que n'importe quel descripteur de fichier soit prêt. Si le délai d'attente est nul, alors
poll()
reviendra sans blocage. Si la valeur de timeout est-1
, lepoll
bloque indéfiniment.
, depuis le Mac OS X 10.5
;
Intervalle maximal d'attente pour la fin de l'interrogation, en millisecondes. Si cette valeur est 0,
poll()
reviendra immédiatement. Si cette valeur estINFTIM (-1)
,poll()
bloquera indéfiniment jusqu'à ce qu'une condition soit trouvée.
, depuis OpenBSD 3.8