Hallo Community,
ich steige jetzt von select() auf epoll() um, habe hierzu jedoch noch einige Fragen:
1. Macht es Sinn mehrere epoll Filedescriptoren anzulegen (z.B. für je 1000 Verbindungen), um den Server schneller zu machen?
2. Wenn ich mehrere Threads mit epoll_wait() laufen habe die auf den selben fd horchen, springt dann immer nur ein epoll_wait() an, wenn neue Daten (zum lesen) anstehen?
Oder genügt es um ein aufwachen mehrerer epoll_wait() zu verhindern EPOLLONESHOT zu setzen und nach dem verarbeiten der Daten (recv()
mit EPOLL_CTL_MOD erneut zu setzen und somit für weitere Zugriffe freizugeben?
3. Muss ich neben EPOLLONESHOT auch EPOLLIN setzen, damit epoll_wait(); aufwacht, wenn neue Daten zum Empfangen verfügbar sind?
4. Was passiert, wenn EPOLLONESHOT gesetzt ist und der Client neue Daten sendet, während ich alte Daten noch verarbeite? Löst epoll aus wenn ich mit EPOLL_CTL_MOD die Flags neu setzte und bereits Daten eingegangen sind?
5. Macht es Sinn aus dem Thread der epoll_wait() ausführt zur tatsächlichen Datenverarbeitung (send(); recv()
einen weiteren Thread zu starten?
6. Was ist gemeint mir: "EPOLLPRI - There is urgent out-of-band data available to read"
Mit freundlichen Grüßen und vielen Dank!
Genius
ich steige jetzt von select() auf epoll() um, habe hierzu jedoch noch einige Fragen:
1. Macht es Sinn mehrere epoll Filedescriptoren anzulegen (z.B. für je 1000 Verbindungen), um den Server schneller zu machen?
2. Wenn ich mehrere Threads mit epoll_wait() laufen habe die auf den selben fd horchen, springt dann immer nur ein epoll_wait() an, wenn neue Daten (zum lesen) anstehen?
Oder genügt es um ein aufwachen mehrerer epoll_wait() zu verhindern EPOLLONESHOT zu setzen und nach dem verarbeiten der Daten (recv()

3. Muss ich neben EPOLLONESHOT auch EPOLLIN setzen, damit epoll_wait(); aufwacht, wenn neue Daten zum Empfangen verfügbar sind?
4. Was passiert, wenn EPOLLONESHOT gesetzt ist und der Client neue Daten sendet, während ich alte Daten noch verarbeite? Löst epoll aus wenn ich mit EPOLL_CTL_MOD die Flags neu setzte und bereits Daten eingegangen sind?
5. Macht es Sinn aus dem Thread der epoll_wait() ausführt zur tatsächlichen Datenverarbeitung (send(); recv()

6. Was ist gemeint mir: "EPOLLPRI - There is urgent out-of-band data available to read"
Mit freundlichen Grüßen und vielen Dank!
Genius