Notes |
(0004789)
nick (manager)
2020-02-27 17:27
edited on: 2020-02-27 17:37
|
Interpretation response
------------------------
The standard states that popen() must call atfork handlers, and it is unspecified if system() call atfork handlers, and conforming implementations must conform to this. However, concerns have been raised about this which are being referred to the sponsor.
Rationale:
-------------
Several existing implementations behave in different ways with respect to calling handlers, but this is important information for application developers.
Notes to the Editor (not part of this interpretation):
-------------------------------------------------------
At page 2107, line 67569 - 67570 section system(), change: It is unspecified whether the handlers registered with pthread_atfork( ) are called as part of the creation of the child process. to: It is implementation-defined whether the handlers registered with pthread_atfork( ) are called as part of the creation of the child process.
At page 1437 line 47731 section popen(), change: where shell path is an unspecified pathname for the sh utility. to: where shell path is an unspecified pathname for the sh utility. It is implementation-defined whether the handlers registered with pthread_atfork( ) are called as part of the creation of the child process.
|
|
(0004790)
geoffclare (manager)
2020-02-27 17:38
|
Just to circumvent any replies of "that doesn't solve the problem" - those of us on the teleconference are aware of that. The change to system() is not being made to address the reported problem, it is just to make system() consistent with posix_spawn() in requiring implementations to document whether these functions call fork handlers. (The change to popen() is for consistency with the change to system() between Issue 6 and Issue 7.)
The original problem cannot be solved by any change related to whether fork handlers are called, because implementations have extensions which a third-party library could use to fork a process without fork handlers being called. Such a facility is also being standardised in Issue 8 (the _Fork() function). |
|
(0004834)
ajosey (manager)
2020-04-30 15:25
|
Interpretation proposed: 30 April 2020 |
|
(0004882)
ajosey (manager)
2020-06-02 09:34
|
Approved: 2nd June 2020 |
|