Verwaltung mehrerer Kommunikationsbeziehungen

Deskriptoren reihum abfragen problematisch, da:
-
umständlich
-
verbraucht unnötig Prozessorzeit (busy waiting)
-
read() i.Allg. blockierend
(warten auf Ereignis 1, während Ereignis 2 eingetreten ist) -
„Sammel-Wartepunkt“ erforderlich
-
ähnlich zu guarded commands
Auf mehrere Eingaben warten in CSP bzw. Erlang:


Verwendung von select()

Angabe der entsprechenden Quellen/Ziele über ihre Deskriptornummer

select() call
select() prüft, welche Ereignisse eingetreten sind (legt sich andernfalls schlafen, bis ein Ereignis eintritt oder Timeout abläuft)
Rückgabe
Gibt was zurück sobald ein Descibtor etwas zu lesen bereit stellt.

Implementierung von select()
