Hallo Community,
ich würde gerne ein blockendes select(), das sich in einem thread befindet von der main() aus wecken.
Mein Problem ist, dass ich das fd_set von der main() aus befülle. Die select()-Funktion befindet sich in einer Schleife. Wärend select() blockt ignoriert select() den neuen Socket. Erst wenn eine der bereits bestehenden Verbindungen etwas sendet und ich die Schleife erneut durchlaufe bearbeitet select() auch den neuen Socket.
Ich denke die leichteste Möglichkeit wäre das blockende select() zu wecken und die Schleife einmal ohne etwas zu tun zu durchlaufen. Kann ich ganz gezielt einen socket() innerhalb eines threads zum Beispiel pingen? Habt ihr sonst eine Idee?
Ich hoffe es war verständlich genug, sonst skizziere ich das Programm.
Mit freundlichen Grüßen und vielen Dank
Genius
€dit:
Ein Timeout oder ein "0" (poll) anstatt von NULL innerhalb des timeval structs finde ich sehr unsauber. Ich weiß, dass es so theoretisch gehen würde.
ich würde gerne ein blockendes select(), das sich in einem thread befindet von der main() aus wecken.
Mein Problem ist, dass ich das fd_set von der main() aus befülle. Die select()-Funktion befindet sich in einer Schleife. Wärend select() blockt ignoriert select() den neuen Socket. Erst wenn eine der bereits bestehenden Verbindungen etwas sendet und ich die Schleife erneut durchlaufe bearbeitet select() auch den neuen Socket.
Ich denke die leichteste Möglichkeit wäre das blockende select() zu wecken und die Schleife einmal ohne etwas zu tun zu durchlaufen. Kann ich ganz gezielt einen socket() innerhalb eines threads zum Beispiel pingen? Habt ihr sonst eine Idee?
Ich hoffe es war verständlich genug, sonst skizziere ich das Programm.
Mit freundlichen Grüßen und vielen Dank
Genius
€dit:
Ein Timeout oder ein "0" (poll) anstatt von NULL innerhalb des timeval structs finde ich sehr unsauber. Ich weiß, dass es so theoretisch gehen würde.
Zuletzt bearbeitet: