|
From: <ha...@us...> - 2007-01-28 17:24:59
|
Revision: 1548
http://svn.sourceforge.net/cogkit/?rev=1548&view=rev
Author: hategan
Date: 2007-01-28 09:24:19 -0800 (Sun, 28 Jan 2007)
Log Message:
-----------
no unneccessary calls to notifyAll
Modified Paths:
--------------
trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/common/task/TaskImpl.java
Modified: trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/common/task/TaskImpl.java
===================================================================
--- trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/common/task/TaskImpl.java 2007-01-28 17:22:36 UTC (rev 1547)
+++ trunk/current/src/cog/modules/abstraction-common/src/org/globus/cog/abstraction/impl/common/task/TaskImpl.java 2007-01-28 17:24:19 UTC (rev 1548)
@@ -14,6 +14,7 @@
import java.util.Hashtable;
import java.util.Iterator;
+import org.apache.log4j.Logger;
import org.globus.cog.abstraction.impl.common.IdentityImpl;
import org.globus.cog.abstraction.impl.common.StatusEvent;
import org.globus.cog.abstraction.impl.common.StatusImpl;
@@ -30,6 +31,8 @@
import org.globus.cog.util.CopyOnWriteHashSet;
public class TaskImpl implements Task {
+ public static final Logger logger = Logger.getLogger(TaskImpl.class);
+
public static final Status STATUS_NONE = new StatusImpl();
private Identity id = null;
@@ -48,6 +51,8 @@
private Calendar completedTime = null;
private ArrayList serviceList = null;
private int requiredServices = 0;
+
+ private boolean anythingWaiting;
public TaskImpl() {
this.id = new IdentityImpl();
@@ -188,6 +193,9 @@
}
public void setStatus(Status status) {
+ if (logger.isDebugEnabled()) {
+ logger.debug(this + " setting status to " + status);
+ }
this.status = status;
if (this.status.getStatusCode() == Status.SUBMITTED) {
@@ -207,7 +215,9 @@
statusListeners.release();
}
synchronized (this) {
- notifyAll();
+ if (anythingWaiting) {
+ notifyAll();
+ }
}
}
@@ -300,6 +310,7 @@
}
public synchronized void waitFor() throws InterruptedException {
+ anythingWaiting = true;
while (!isFailed() && !isCompleted() && !isCanceled()) {
wait();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|