Good morning,

I've been experimenting a bit with fork and pEFL and noticed that efl
seems to override the SIGCHLD signal? In any case, my terminated child
processes appear to be collected by efl before I can collect them in
Perl. Hence my question: Is it safe to override the SIGCHLD signal from
efl and thus regain full control myself? As far as I can see, SIGCHLD
is mainly used in ecore_exe.c and ecore_signal.c:

grep -rnw ‘/$path_to_efl_source’ -e “SIGCHLD”
./src/bin/elementary/quicklaunch.c:61:   sigaction(SIGCHLD,
&old_sigchld, NULL);
./src/bin/elementary/quicklaunch.c:314:   sigaction(SIGCHLD, &action,
&old_sigchld);
./src/lib/eina/eina_debug.c:614:   sigaddset(&newset, SIGCHLD);
./src/lib/eina/eina_debug_bt.c:78:// #define  SIGCHLD   20 /* to parent
on child stop or exit */
./src/lib/eina/eina_debug_timer.c:169:        sigaddset(&newset,
SIGCHLD);
./src/lib/eina/eina_thread_posix.c:97:   sigaddset(&newset, SIGCHLD);
./src/lib/ecore/ecore_exe_posix.c:297:      sigaddset(&newset,
SIGCHLD);
./src/lib/ecore/efl_exe.c:443:   sigaddset(&newset, SIGCHLD);
./src/lib/ecore/ecore_signal.c:74:                case SIGCHLD:
./src/lib/ecore/ecore_signal.c:219:  
_ecore_signal_callback_set(SIGCHLD, _ecore_signal_callback);
./src/lib/ecore/ecore_signal.c:234:   sigaddset(&newset, SIGCHLD);
./src/lib/ecore/ecore_signal.c:330:   sigaddset(&newset, SIGCHLD);

Both are modules that aren't implemented in my Perl binding. So I don't
see any problem with letting Perl handle the cleanup of the child
processes at the moment?

But of course, I don’t know whether ecore_exe, ecore_signal, or child
processes in general need to be managed by EFL in other areas (e.g.,
when drawing graphics in Evas or generating thumbnails, etc.).

I’d really appreciate a quick assessment :-)

Thanks in advance,
Max


_______________________________________________
enlightenment-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-users

Reply via email to