Multithreading pthread_cancel funktioniert nicht?

2 Antworten

Das ist doch alles totaler Pfusch.

Nimm std::thread, fixe den Bug mit der Endlosschleife, und beende den Thread ordnungsgemäß!

Das ist ja grausam bisher ...

Woher ich das weiß:Berufserfahrung
Palladin007  05.03.2021, 09:34

Hätte ich nicht schöner schreiben können :D

Ich bin zwar C#-Entwickler, aber auch da gilt:
Threads werden nicht abgebrochen, die haben sich gefälligst selbst zu beenden.
'ne bool-Variable reicht ja, bei C# muss man da nicht mehr groß synchronisieren.

1
verreisterNutzer  05.03.2021, 15:38

Natürlich ist es ein Pfusch, aber was soll ich machen? Wir dürfen nur pthread verwenden also fällt std::thread schonmal raus. Außerdem dürfen wir die while loop nicht ändern -> Sprich der Thread kann sich weder mit pthread_exit selber beenden noch kann ich einen cancellation point setzen. Die einzige Möglichkeit ist also diesen mit den entsprechenden pthread_setcancelstate und thread_setcanceltype zu canceln (dies war btw mein Fehler, ich hab auf den canceltype vergessen).

0