Speicherverbrauch nimmt immer weiter zu und ich kapier nicht wieso...



  • Hi,

    ich hab ein Programm, welches per accept() clienten akzeptiert und für diese per p_thread je einen thread erstellt, der mit recv in einer Endlosschleife auf daten wartet und diese verarbeitet, indem er andere Daten an andere clienten weiterschickt. Erhält jener Thread 0 Zeichen wird der Socket geschlossen und der Thread beendet.

    Über die ganze Zeit schwankt die Clienten- und damit Thread-Anzahl zwischen 0 und ca. 30 und der Speicherverbrauch dürfte eigentlich nicht auf die Dauer steigen, da ich die Speicher immer mit realloc der benötigten Größe anpasse. Aber dennoch steigt der Speicher immer weiter und wenn er 0.2% des Serverspeichers (entspricht 2MB) erreicht hat geht gar nichts mehr, d.h. es werden keine Clienten mehr angenommen und nichts.

    Weiß jemand woran das liegen könnte? Muss ich irgendwas beim Beenden der Thread beachten (bisher benutz ich einfach pthread_exit((void*)0) und return 0)? Und wieso geht irgendwann gar nichts mehr?

    MfG, Herr-Vorragend

    P.S.: Zum senden benutze ich send(), zum empfangen recv(), vielleicht hat es damit was zu tun, weil ja bei 2MB alle socket-operationen fehlschlagen...



  • valgrind


Anmelden zum Antworten