Author: dgolovin
Date: 2008-01-16 13:18:10 -0500 (Wed, 16 Jan 2008)
New Revision: 5749
Modified:
trunk/tests/tests/org.jboss.tools.test/src/org/jboss/tools/test/util/xpl/DisplayHelper.java
trunk/tests/tests/org.jboss.tools.test/src/org/jboss/tools/test/util/xpl/EditorTestHelper.java
Log:
timeout is added to reading the GUI thread even queue
Modified:
trunk/tests/tests/org.jboss.tools.test/src/org/jboss/tools/test/util/xpl/DisplayHelper.java
===================================================================
---
trunk/tests/tests/org.jboss.tools.test/src/org/jboss/tools/test/util/xpl/DisplayHelper.java 2008-01-16
18:13:04 UTC (rev 5748)
+++
trunk/tests/tests/org.jboss.tools.test/src/org/jboss/tools/test/util/xpl/DisplayHelper.java 2008-01-16
18:18:10 UTC (rev 5749)
@@ -188,10 +188,14 @@
if (timeout < 0)
return false;
+
+ // repeatedly sleep until condition becomes true or timeout elapses
+ DisplayWaiter waiter= new DisplayWaiter(display, true);
+ long finalTimeout = calculateFinalTimeout(timeout);
// if driving the event loop once makes the condition hold, succeed
// without spawning a thread.
- driveEventQueue(display);
+ driveEventQueue(display,finalTimeout);
if (condition())
return true;
@@ -199,18 +203,13 @@
if (timeout == 0)
return false;
- // repeatedly sleep until condition becomes true or timeout elapses
- DisplayWaiter waiter= new DisplayWaiter(display, true);
- long currentTimeMillis= System.currentTimeMillis();
- long finalTimeout= timeout + currentTimeMillis;
- if (finalTimeout < currentTimeMillis)
- finalTimeout= Long.MAX_VALUE;
+ finalTimeout = calculateFinalTimeout(timeout);
boolean condition;
try {
do {
waiter.restart(interval);
if (display.sleep())
- driveEventQueue(display);
+ driveEventQueue(display,finalTimeout);
condition= condition();
} while (!condition && finalTimeout > System.currentTimeMillis());
} finally {
@@ -219,4 +218,28 @@
return condition;
}
+ /**
+ * @param display
+ * @param finalTimeout
+ */
+ private boolean driveEventQueue(Display display, long finalTimeout) {
+ boolean events= false;
+ while (display.readAndDispatch() && finalTimeout >
System.currentTimeMillis()) {
+ events= true;
+ }
+ return events;
+ }
+
+ /**
+ * @param timeout
+ * @return
+ */
+ private long calculateFinalTimeout(long timeout) {
+ long currentTimeMillis= System.currentTimeMillis();
+ long finalTimeout= timeout + currentTimeMillis;
+ if (finalTimeout < currentTimeMillis)
+ finalTimeout= Long.MAX_VALUE;
+ return finalTimeout;
+ }
+
}
\ No newline at end of file
Modified:
trunk/tests/tests/org.jboss.tools.test/src/org/jboss/tools/test/util/xpl/EditorTestHelper.java
===================================================================
---
trunk/tests/tests/org.jboss.tools.test/src/org/jboss/tools/test/util/xpl/EditorTestHelper.java 2008-01-16
18:13:04 UTC (rev 5748)
+++
trunk/tests/tests/org.jboss.tools.test/src/org/jboss/tools/test/util/xpl/EditorTestHelper.java 2008-01-16
18:18:10 UTC (rev 5749)
@@ -172,7 +172,7 @@
}
}
// Join jobs
- joinJobs(0, 0, 500);
+ joinJobs(1000, 10000, 500);
Logger.global.exiting("EditorTestHelper",
"joinBackgroundActivities"); //$NON-NLS-1$ //$NON-NLS-2$
}
Show replies by date