On 22 May 2017 at 19:43, Denys Vlasenko <vda.li...@googlemail.com> wrote:
>> I am not sure what is the right place to fix this. Any comment on this?
>> For me it works to suppress this signal on the corresponding poll() call.
>
> Well, SIGCHLD may have a trap, so, that would not be correct.
>
> Fixed in git, please try.
Thanks for your fix. Works perfect for my script (controlling a cellular
modem)

I was curious how to catch SIGCHLD using trap and what behavior we should
expect. Could you also provide a test for trap in conjunction with SIGCHLD.

Here my tries with results from busybox-git with your fix:

# sleep 1& read x
=> no trap signal handler installed, read waits now forever for input

# trap "echo --TRAP---" CHLD; sleep 1& read x
--TRAP---
[1]+  Done                       sleep 1

=> Okay, read will be interrupted after one second
   (this works now thanks your fixes in signal handling coder.
    It would not work correctly in busybox 1.24 versions)

# sleep 1& read x
--TRAP---
[1]+  Done                       sleep 1

=> Okay, trap handler still installed, same in subsequent commands

# trap '' CHLD
# sleep 1& read x
[1]+  Done                       sleep 1

=> Is this correct? Set SIGCHLD to ignore, read still will be
   interrupted after one second.

# trap - CHLD
# sleep 1& read x

=> Okay, set SIGCHLD to default. read now waits for ever again.
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to