2010-11-23 8 views
1

Mögliche Duplizieren:
posix timer_create() function causing memory leak on linuxPosix timer_create() Problem auf Linux

Ich bin mit Posix timer_create() Funktion für die Timer-Funktionalität in meiner Anwendung. Ich verwende die Option SIGEV_THREAD für das Timeout-Szenario. Aber der Thread, der vom Kernel zur Laufzeit erstellt wird, wenn das Timeout nicht beendet wird. Es gibt auch kein Problem mit der Startfunktion des Threads. Zu Testzwecken habe ich es zu einer Dummy-Funktion gemacht. Da dieser Thread nicht beendet wird, verursacht er ein Memroyleck von etwa 10 MB. Der Trennstatus für den standardmäßig erstellten Thread ist PTHREAD_CREATE_DETACHED. Kann mir jemand sagen, was ich tun soll, um das Speicherleck zu beseitigen?

+0

Bitte beenden Sie diese doppelten Beiträge. –

+4

Wenn Sie eine bessere Antwort als das letzte Mal möchten, dann poste etwas Code. – Duck

Antwort

0

Dies ist libc-Bibliothek erstellen einen Thread, Timer für Sie zu behandeln. Dieser Thread wird nicht zerstört, nachdem der Timer ausgelöst wurde, um zu vermeiden, dass Threads bei jeder Verwendung von timer_create() erstellt/zerstört werden. Mit anderen Worten, sobald ein Timer-Thread erstellt wurde, wird er ausgeführt, bis das Programm beendet ist.

Der Timer-Thread selbst verursacht jedoch keine Speicherlecks. Der Speicherverlust wird höchstwahrscheinlich von Ihrem Code verursacht. Sende deinen Code bitte.