2016-04-04 9 views
0

Wie kann ich pthread Ausführung selbst beenden?Exit Pthread, der ausgeführt wird

Ich habe diesen Code

while(1) 
{ 
    if(...) 
    { 
    terminate 
    } 
    work(); 
} 

Ich habe pthread_exit(); zu verwenden, aber was gebe ich als Parameter?

+0

Ich glaube, Sie können einfach "0 zurückgeben" aus dem Thread auch, und das wird zu einem impliziten Aufruf von "pthread_exit" führen. – Lundin

+0

Sind Sie sicher, dass Return ruft pthread_exit? Ich suchte nach thsi aber fand keine Tatsache, die das sagt – lllook

+1

Nein, ich bin nicht, seit Jahren, da ich Posix-Threads berührte, aber das ist, was [RTFM] (http://linux.die.net/man/3/pthread_exit) sagt . – Lundin

Antwort

2

Nach den Handbuch

Die pthread_exit() Funktion beendet den aufrufenden Thread und sendet Wert über retval, dass (wenn der Faden joinable ist) zu Prozess zur Verfügung steht ein anderer Thread in dem gleichen, die pthread_join(3) aufruft.

Dies ist ein beliebiger Wert, den Sie dem verbindenden Thread bereitstellen möchten. Wenn Sie keinen Rückgabewert benötigen, können Sie NULL übergeben.

+0

vielleicht könnte ich pthread_self() verwenden? – lllook

+0

das macht überhaupt keinen Sinn, und ich bin nicht einmal sicher, ob 'pthread_t' ein Zeiger ist; In jedem Fall benötigt 'pthread_join' einen Thread als Argument, also kennt der andere Thread bereits' pthread_t'. –