multiprocessing does not cope well with terminate() without join() straight
Arnaud Fontaine authored
away as it needs to send for example  the exit status over a pipe and also the
SIGCHLD was interrupting this pipe.

Moreover,  there  was a  race  condition in  the  previous  code leaving  some
children left in some cases because some SIGCHLD got lost.

Also, ignore further  SIGTERM once one has been received  to avoid receiving a
SIGTERM   before  putting   the   result  to   the   queue  and   interrupting
multiprocessing magic.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk/utils@46025 20353a03-c40f-0410-a6d1-a30d3c3de9de
dee188f8