Sebastien Cantos <email@example.com> wrote:
qnx_spanwn_options |= _SPAWN_NOZOMBIE;
spawnl (P_WAIT, …
When i do that, the spawnl never returns and my process is blocked. I think
this is because _SPAWN_NOZOMBIE is not compatible with P_WAIT in spawn
I know that the _SPAWN_NOZOMBIE is useless since i wait for the end of the
spawned process (P_WAIT). But if i set this flag for other reasons in
another part of my code, i must reset it before spawning another process
I’ve spend 2 hours to correct this bug.
This is undocumented.
This global structure sets the default values to be passed to
qnx_spawn() when any of the spawn…() and exec…() functions
When the new process terminates it won’t become a zombie waiting
for its parent to do a wait on its death. The parent (you) won’t
see the process die, and a SIGCHLD won’t be set.
So, you then called spawnl(P_WAIT). That says load the program and
wait for it to die – but you’d specifically set a flag that said to
the OS “don’t tell me about the death of any children”.
I guess the _qnx_spawn_options page could have a “warning playing
with under-the-covers with globally exported structures might cause
Is this a kernel bug or just an undocumented thing ??
I’m Waiting for your comments.
It is definitely not a kernel bug. In fact, it isn’t even particularly
QNX Training Services
Please followup in this newsgroup if you have further questions.