You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ivy-commits@incubator.apache.org by "John Gill (JIRA)" <ji...@apache.org> on 2007/10/25 16:10:50 UTC
[jira] Updated: (IVY-585) Add an interruptSafely to Ivy
[ https://issues.apache.org/jira/browse/IVY-585?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
John Gill updated IVY-585:
--------------------------
Description:
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.
{code:java}
/**
* 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;
}
}
{code}
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.
was:
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.
> 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.
> {code:java}
> /**
> * 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;
> }
> }
> {code}
> 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.