On 16/08/2012 16:32, Neil Richards wrote:
:

First, I think the discussion on the particular VM implementation
behaviour is a slight diversion from Frank's suggested change, which I
believe is all about making the Java code more robust / agnostic to the
VM implementation behaviour.
I think it was important to get some context as it was missing in the original mails.



> From the perspective of the code in Terminator.setup(), I think the
pertinent question is:
         Should the code try to register shutdown hook handlers for other
         signals if the attempt to register for one signal fails with an
         exception?
Or, to put it another way:
         Should the registration of the shutdown hook handler for each
         signal be independent of each other?

Frank's suggested change, and my argument, is that these registrations
should be independent - i.e. that Terminator.setup() should register
shutdown hook handlers for all (shutdown) signals that the system (VM)
allows it to.
I think we're in agreement on that.

On JVM_RegisterSignal then it returns -1 if the signal is in use by the VM or there is an error examining/changing the action. If the signal is ignored (existing action is SIG_IGN) then it just returns SIG_IGN without attempting to change it. It probably should have defined a specific error for this case as the caller can't distinguish it from the case that the action was changed and the previous action was SIG_IGN. If there was an error for this case then sun.misc.Signal could have mapped it to an exception, perhaps IllegalStateException. Whether it's worth changing this now isn't clear to me but changing it is potentially disruptive. Disruptive meaning that it would change the behavior of sun.misc.Signal so that it would throw an exception for a case where it doesn't do so today. Folks shouldn't be using sun.misc.Signal of course but we know that they do.


:

However, I still consider that VM modification would be logically
orthogonal to Frank's suggested change, and suggest that his change
could continue to be approved for contribution at this point, regardless
of the separate VM-related discussion in this area.

Both David and I have already reviewed Frank's change and okay with it.

I'll leave it to you whether you want to propose a change to JVM_RegisterSignal.

-Alan

Reply via email to