On 23 November 2012 16:19, Max Leske <maxleske@gmail.com> wrote:
I did some more digging and I found that I was wrong before: every child process I create through NB is killed immediately and becomes a zombie (that's why it ignored the kill). Once I had that information I implemented the waitpid() call and can now cleanup my zombie children. This would also explain (at least to my mind) why the child code (pid = 0 ifTrue: [ ⦠]) is never executed.
Now, my question is, who terminates my child processes?
The processes are terminated with SIGABRT; all of the above also applies to vfork(). I found that there's a crash report being generated for that aborted process so I'm attaching it here, maybe you'll see something I missed.
Max
i would start from here:
Application Specific Information: *** multi-threaded process forked *** abort() called
http://www.linuxprogrammingblog.com/threads-and-fork-think-twice-before-usin... damn... why unix (POSIX) kernels don't have spawn_exec() which spawns a new process without need to do a fork() in current? -- Best regards, Igor Stasenko.