La chiamata di sistema poll(), supportata su molti sistemi Unix, fornisce migliore scalabilit� per server di rete che devono servire moltissimi client contemporaneamente. poll() ha una scalabilit� migliore perch� la chiamata di sistema richiede solo la lista dei descrittori di file di interesse, mentre select() costruisce una bitmap, abilita i bit per i descrittori di file di interesse, e quindi di conseguenza l'intera bitmap deve essere analizzata linearmente di nuovo. select() � O(file descriptor pi� alto), mentre poll() � O(numero di file descriptor).
| fd[, eventmask]) |
eventmask � una bitmask opzionale che descrive il tipo di eventi che si vogliono controllare, e pu� essere una combinazione delle costanti POLLIN, POLLPRI e POLLOUT, descritte nella tabella sottostante. Se non specificato, il valore predefinito usato controller� tutti e tre 3 i tipi di eventi.
| Costante | Significato |
|---|---|
| POLLIN | Non ci sono dati da leggere |
| POLLPRI | Ci sono dati urgenti da leggere |
| POLLOUT | Pronto per l'output: la scrittura non bloccher� |
| POLLERR | Condizione di errore di un qualche tipo |
| POLLHUP | Attesa |
| POLLNVAL | Richiesta non valida: descrittore non aperto |
Registrare un descrittore di file che � gi� registrato non significa un errore, ha lo stesso effetto di registrare il descrittore una volta sola.
| fd) |
Tentare di rimuovere un descrittore di file che non � mai stato registrato causer� il sollevamento dell'eccezione KeyError.
| [timeout]) |
(fd, event) per i descrittori che hanno eventi o
errori da riportare. fd � il descrittore di file, mentre
event � una bitmask con bit impostati per gli eventi riportati
per quel descrittore -- POLLIN per input in attesa,
POLLOUT per indicare che sul descrittore vi si pu�
scrivere, e cosi via.
Una lista vuota indica che la chiamata � andata in timeout e
nessun descrittore di file ha alcun evento da riportare.
Se viene passato, timeout specifica il periodo di tempo in
millisecondi durante il quale sistema aspetter� degli eventi prima di
terminare la chiamata.
Se timeout � omesso, negativo o None, la chiamata si
bloccher� fino a che non apparir� un evento per questo oggetto poll.