Jeff Epler wrote:
You could submit an interpretation request, but I think the committee would concur with my reading.
Hmm. This is what I now did: I submitted an interpretation request to PASC:
Edition of Specification (Year): 2003
Defect code : 3. Clarification required
It is unclear whether calling system(3) invokes atfork handlers in a conforming implementation. system(3) specifies
"The environment of the executed command shall be as if a child process were created using fork(), and the child process invoked the sh utility using execl() as follows:"
In particular, usage of the word "environment" is confusing here. It may refer just to environment variables, however, the "Application usage" sections indicates that also signal handlers should be arranged as if the process was created through fork() and execl(). This still makes not clear whether handlers installed through pthread_atfork() are invoked.
The description of system() should change to
"system() behaves as if a new process was created using fork(), and the child process invoked the sh utility using execl() ..."
In addition, the application usage section should make it clear that atfork handlers are invoked.