GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was macht poll() mit einem Timeout von 0?

Aus meiner Sicht bedeutet das Warten auf eine Zeitüberschreitung, eine Zeitüberschreitung zu "haben". Auf diese Weise würde ich erwarten, dass poll() tatsächlich überprüft die Dateideskriptoren und wartet dann, wenn niemand bereit ist, bis zu einem Timeout von 0 Millisekunden (überhaupt keine Wartezeit). Aber der Fall ist, dass es nur signalisiert, wenn ein fd verfügbar ist.

Ich habe auch den Linux-Quellcode überprüft und meines Wissens nach funktioniert es so:Zuerst wird der "zukünftige" Wartepunkt berechnet, dann die Dateideskriptoren überprüft, dann, wenn keine verfügbar sind, auf die angegebene Timeout-Zeit gewartet.

Grüße,


Es wird sofort zurückgegeben:

Wenn timeout größer als Null ist, gibt es ein maximales Intervall (in Millisekunden) an, um darauf zu warten, dass ein Dateideskriptor bereit wird. Wenn das Zeitlimit Null ist, dann poll() wird ohne Blockierung zurückkehren. Wenn der Wert von timeout -1 ist , die poll blockiert auf unbestimmte Zeit.

, ab Mac OS X 10.5;

Maximales Intervall, das auf den Abschluss der Abfrage gewartet werden soll, in Millisekunden. Wenn dieser Wert 0 ist, poll() werde sofort wiederkommen. Wenn dieser Wert INFTIM (-1) ist , poll() blockiert auf unbestimmte Zeit, bis eine Bedingung gefunden wird.

, ab OpenBSD 3.8


Linux
  1. Was macht „lc_all=c“?

  2. Was macht ?

  3. Hat Curl eine Zeitüberschreitung?

  4. Was bedeutet Echo $? Tun??

  5. Was macht Libgl_always_indirect=1 eigentlich?

Was macht Gnome mit Multimedia-Tasten?

Was gibt malloc(0) zurück?

Wofür steht 'cd-'?

Was macht ulimit -s unlimited?

Was macht 'bash -c'?

Was macht Linux mit vorhandenen Dateien in einem Einhängepunkt?