Frage zu IOCP und thread safety (Speziell AcceptEx)



  • Hi!

    Wie geht man eigentlich vor, wenn man mehrere ausstehende AcceptEx-Aufrufe hat? Denn: Dann können ja, mehr als einen Workerthread vorausgesetzt, zB. zwei AcceptEx "gleichzeitig" zurückkehren, und da sehe ich das Problem:
    Bei einem fertigen AcceptEx macht man ja so Dinge wie setsockopt mit SO_UPDATE_ACCEPT_CONTEXT, CreateIoCompletionPort (assign), ...
    Müsste man dann nicht eine critical section dafür benutzen? Oder sind diese Funktionen threadsafe?
    Oder reicht es, nur 1x AcceptEx zu posten? Ein Megaserver soll es sowieso nicht werden...

    Aber auch bei WSARecv sehe ich das Problem. Ich habe zwar nicht vor, mehr als 1x WSARecv pro Client zu posten (Unnötig kompliziert, brauche diese Performance nicht), aber es können ja 2x WSARecv von zwei unterschiedlichen Clienten "gleichzeitig" kommen...

    Wie macht man das richtig?


Anmelden zum Antworten