linux signals

Jagadish Chandra Prasad jagadish@icmg.nu
Thu Aug 30 00:58:00 GMT 2001


Hi,
    I have problem while using linux signals.some signals are lost.
    I have a signal handler for SIGCHLD.
    my signal handler code is.,

   void handler(int i)


     cout<<"Inside Handler:"<<getpid()<<":"<<i<<endl;
     int status;
     pid_t pid=wait(&status);
    if(pid >0 ){
    cout<<"Child:"<<pid<<" exited with :"<<status<<endl;
    }
}

  I am initialising signal handler as.,

  struct sigaction sa;
  sigemptyset( &sa.sa_mask );
  sa.sa_flags = 0;
  sa.sa_handler = handler;
  sigaction( SIGCHLD, &sa, 0 );


i have some 10 child processes running. i am issuing SIGTERM  on all child
processes at a time using killall.
but handler is not called for 10 times.
some child processes are becoming  <defunct>.

i am using glibc 2.1.3 and kernel 2.2.14
can someone explain whats happenning.

Regards,
Jagadish



More information about the Libc-alpha mailing list