Home Corporate Contacts

TETware Knowledgebase


Products
Solutions

Information

Datasheet
Documentation
FAQ
Knowledgebase

Return to Knowledgebase Index

18. Problems with SIGCHLD in the Perl API

This information is not applicable to Win32 systems.

 

Question

When executing a perl API test, I'm running into problems with the TCM and SIGCHLD when I invoke other processes via the perl system() call. After the system() function completes, the test aborts due to receipt of the SIGCHLD signal.

I tried adding @tet'sig_ignore(18) to my code, but apparently SIGCHLD is considered an uncatchable signal by tcm.pl.

 

Answer

This is correct - if a TCM catches SIGCHLD it can't reap child processes correctly (as you have observed).

The setting up of the signal lists in the perl API is performed by a configuration script when the API is installed. By default, the TCM catches all the signals not in the special signal list. One reason for the behaviour that you have observed might be that some problem during installation has prevented the list from being set up correctly. Or you might be using a copy of the perl API that has been configured for use on another machine where SIGCHLD has a different numerical value.

You should try reinstalling the perl API from the source and configuring it on your machine.

 

See also

  • "Building TETware'' in the TETware Installation Guide for UNIX Operating Systems.


 


Home Contacts Legal Copyright Corporate News

Copyright © The Open Group 1995-2012, All Rights Reserved