Per come la vedo io, aspettare un timeout significa "avere" un timeout. In questo modo mi aspetterei che poll() effettivamente controlli i descrittori di file, quindi attende se nessuno è pronto per un timeout di 0 millisecondi (nessuna attesa). Ma il caso è che segnalerà solo se è disponibile un fd.
Ho anche controllato il codice sorgente di Linux e, per quanto ne so, funziona così:prima calcola il punto di attesa "futuro", quindi controlla i descrittori di file, quindi, se non sono disponibili, attende il timeout specificato.
Saluti,
Ritornerà immediatamente:
Se timeout è maggiore di zero, specifica un intervallo massimo (in millisecondi) per attendere che qualsiasi descrittore di file sia pronto. Se il timeout è zero, allora
poll()
tornerà senza bloccare. Se il valore di timeout è-1
, ilpoll
blocchi a tempo indeterminato.
, a partire da Mac OS X 10.5
;
Intervallo massimo di attesa per il completamento del sondaggio, in millisecondi. Se questo valore è 0,
poll()
tornerà immediatamente. Se questo valore èINFTIM (-1)
,poll()
si bloccherà indefinitamente finché non viene trovata una condizione.
, a partire da OpenBSD 3.8