Stichwort "heartbeat"

bau in deinen pthread eine variable ein und eine funktion die diese vaiable abrufen und interpretieren kann

zum start des pthread setzt du sie auf "alive"

dann rufst du dein "isAlive()" auf und gibts true zurück wenn die variable alive ist, gleichzeitig setzt du die variable auf "noHeartBeat"

im pthread selbst solltest du theoretisch in einer schleife laufen und wenn die variable innerhalb der schleife != "alive" ist wieer auf "alive" setzen

die letzte aktion bevor du den pthread beendest sollte dann sein die variable auf "dead" zu setzen


wenn es nur darum geht zu erkennen wann er bendet wurde kannste das mit noHeartBeat ignorieren und ne bool variable "alive" benutzen, bei start auf true und am ende auf false setzen



PS: genau so beendest du auch nen pthread ohne ihn zu killen ... du startest einen pthread, der beginnt mit der variable "continueOp = true;" und von außen setzt du die variable auf false und im pthread reagierst du darauf und beendest deine operation und setzt "alive = false"