Destructor, Send und threads.



  • Hallo zusammen.

    Folgende frage. Ich habe eine größere Netzwerkanwendung deren komplette Netzwerkschnittstelle ich umgeschrieben habe. Nun tritt folgendes problem auf.
    Bevor ein client "zwangs ausgeloggt" wird sende ich noch eine nachricht die das zwangsausloggen dem client mitteilt.

    Dannach kann ja eigentlich die verbindung gelöscht werden. Da aber das senden in threads gemacht wird kommts nun zum problem. Das "ausloggen" würde nicht mehr gesendet werden. Also versuchte ich das mit einen mutex zu sperren. Der destructor prüft ob der mutex wieder frei ist und löscht erst dann alles. Nun kommts aber dazu das send() manchmal blockiert.

    Kurzum. Hauptanwendung sendet logout, dieses setzt den mutex auf gesperrt. Will senden aber aus irgend einen grund blockt das senden. Der Mutex wird wohl nicht entsperrt. Destructor wird aufgerufen.... und???? naja irgendwann kommt dann ein Segfault.

    Kann der Grund dafür sein das eben der destructor nicht in einer gewissen zeit abgearbeitet ist? Was könnte noch der grund dafür sein?


Log in to reply