[Python-Dev] Python threads end up blocking signals in subprocesses

Martin v. Loewis martin at v.loewis.de
Tue Dec 23 03:51:01 EST 2003


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.

Action:

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.

Regards,
Martin




More information about the Python-Dev mailing list