parent soll mehr als ein child forken -> defunct
-
Hey,
ich möchte mehrere childs forken. Solange ich ein fork() ausführe läufts, aber beim zweiten kommt ein defunct.
So sieht der Code aus:int main(){ pid_t id1 = fork(); if(id1==0){ MeinProzess m(); m.start();//in start() steht eine endlosschleife: while(1){sleep1();} }else{ //do stuff here. } }
Das funtzt, wenn ich in der console "ps" aufrufe habe ich beide Prozesse:
1234 MeinProzess
1235 MeinProzessWenn ich aber nicht nur ein Kind erzeugen möchte sondern mehrere kommt es zu einem defunct:
int main(){ pid_t id1 = fork(); if(id1==0){ MeinProzess m(); m.start(); //in start() steht eine endlosschleife: while(1){sleep1();} }else{ pid_t id2 = fork(); if(id2 == 0){ MeinProzess m1(); m1.start(); //in start() steht eine endlosschleife: while(1){sleep1();} }else{ //do stuff here } //do stuff here. } }
Wenn ich diesen Code ausführe passiert folgendes bei "ps":
1234 MeinProzess
1235 MeinProzess
1236 MeinProzess <defunct>
-
Never Mind.
Ich hatte nen Buchstabendreher bei meinem XML Parser wodurch "MeinProzess" beim initialisieren abgestürzt ist. Deshalb sah es so aus als ob beim zweiten Prozess ein <defunct> kommt.Wie kann ich diesen Thread löschen?