Add an interruptSafely to Ivy
-----------------------------
Key: IVY-585
URL: https://issues.apache.org/jira/browse/IVY-585
Project: Ivy
Issue Type: Improvement
Components: Core
Affects Versions: 2.0.0-alpha-2
Reporter: Jim Bonanno
I would like to request an implementation of interrupt in the Ivy class that
can not call stop on the operatingThread. I am hitting issues trying to
interrupt the resolve from a job in an eclipse plugin. I am seeing a
ThreadDeath exception in the uncaughtExceptionHandler and then a hung thread.
I would like propose an interruptedSafely that basically just set interrupted
to true. This will allow monitoring the operating thread until it terminates
without a stop.
/**
* Marks the current running operation as interrupted. The processing will
eventually call
* checkInterrupted and end safely.
*/
public void interruptSafely(Thread operatingThread) {
if (operatingThread != null && operatingThread.isAlive()) {
if (operatingThread == Thread.currentThread()) {
throw new IllegalStateException("cannot call interrupt from ivy
operating thread");
}
Message.verbose("interrupting operating thread...");
interrupted = true;
}
}
Another option would be to offer getter/setters on the interrupted boolean.
Interrupted could then be set and checkInterrupted would end the resolve. Since
stop is not the recommended way to stop a thread, it would be nice to have a
way to interrupt the resolve that can not call stop.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.