000
04.12.2005, 17:30 Uhr
~oxcinsha
Gast
|
lalo miteinander,...
...ich moecht einen 2. Thread erstellen, und damit ich sicher sein kann das der nicht als Zombie endet, moecht ich auf das SIGCHLD warten...
Thread mach ich per clone..
Code: |
iprC = clone ( (void *)&input_clone , child_stack , CLONE_VM , NULL );
|
...also,...
Code: |
sigchild_handling.sa_handler = dec_pid; sigemptyset ( &sigchild_handling.sa_mask); sigchild_handling.sa_flags = SA_NOMASK; sigaction ( SIGCHLD , &sigchild_handling , NULL );
|
...und...
Code: |
void dec_pid ( int sig ) { pids--; g_print ( "handling" ); }
|
...scheinen dann das Problem zu sein, denn der sa_handler dec_pid kommt nicht zum Zug.
Eigentlich koennte ich (so scheint es mir), ohne den Parent warten zu lassen exiten, der Child terminiert korrekt, weil ich die Laufzeitbedingung vom Parent im gleichen Speicherraum eliminiere (Parent GBOOLEAN TRUE ->FALSE & Child terminiert.).
Aber das Verstaendnisproblem steht. |