Hmm. There are two functions there that test for P_TRACED, do both
need to be fixed?

Also I'm not entirely sure what the mechanism is here. Clearly the
original code (this is original code) isn't quite compatible with
the new signaling code, but the question is: What is the correct
thing to do about it?

No, cursig() will always stop the process and let the tracing parent look
at the signal.

However, as we don't want to block there, we are returning ERESTART from
fork1(). Now we should *only* do this if there is a signal. Otherwise
we'll just restart the syscall and the situation won't change.

No, this is "new" code :) It was added by you in 2006, sys/signalvar.h
rev 1.15.

:No, cursig() will always stop the process and let the tracing parent look=
:=20
:at the signal.
:
:However, as we don't want to block there, we are returning ERESTART from =
:
:fork1(). Now we should *only* do this if there is a signal. Otherwise=20
:we'll just restart the syscall and the situation won't change.
:...
:> thing to do about it?
:
:No, this is "new" code :) It was added by you in 2006, sys/signalvar.h=20
:rev 1.15.
:
:I'm sure this is the correct fix.
:
:cheers
: simon