Probleme bei der wiederholten Initialisierung von Thread-Gruppen
-
Ich habe folgende Schleife, in der ich eine Thread-Gruppe initialisiere und ihr mit einer weiteren for-Schleife 10 Threads des selben Typs hinzufüge.
for(v=0;v<100;v++)
{
print("Durchlauf %i gestartet\n",v);
boost::thread_group grp;
for(i=0;i<10;i++)
grp.create_thread(boost::bind(threadFun, Speicher_pro_Thread));
boost::thread::yield();
grp.join_all();
}Mein Problem ist, dass das Programm vor dem Ende des 4ten Durchlaufs abbricht und folgende Meldung kommt:
terminate called recursively
terminate called recursivel
AbgebrochenDer erste Durchlauf geht auch innerhalb von ein paar Sekunden die danach brauchen zunehmend immer länger
Meine Vermutung ist, dass nach jedem Durchlauf die Gruppe und die Threads, welche ja eigentlich beendet sind, noch weiter existieren. Kann mir jemand sagen, wie ich die lösche(mit delete klappts nicht)? Oder hat jemand noch eine andere Idee woran das liegen könnte?