• [^] # Re: Threads

    Posté par (site web personnel) . En réponse au message Raw socket (BUG). Évalué à 1.

    C'est là ou ça ne marche plus. Le recvmsg ne termine pas !
    OK, j'avais mal lu.

    Oui, c'est le but.
    Non, tu ne protège pas l'accès à ta socket dans ton cas, je ne connais pas assez bien le noyau pour savoir si c'est sensé fonctionner comme tu veux.

    Car recvmsg est un appel bloquant, donc pour l'annuler, un close sur la socket me semblait un bonne idée.

    Tu ne peux pas arrêter un appel bloquant avec un close. Il te faut un signal pour ça (et encore pour recvmsg je ne sais pas).

    En fait tu est sensé faire un select dans ton while avant d'appeler recvmsg pour détecter les conditions d'arrêt.