static public void awaitOn(Condition c) {
		MultithreadedTestCase thisTestCase = currentTestCase.get();
		if (thisTestCase != null && thisTestCase.failed)
			throw new RuntimeException("Test case has failed");

		if (skipNextWait.get()) {
			skipNextWait.set(false);
			return;
		}
		try {
			c.await(3, TimeUnit.SECONDS);
		} catch (InterruptedException e) {
			if (thisTestCase != null && thisTestCase.failed)
				throw new RuntimeException("Test case has failed");
			throw new AssertionError(e);
		}
		if (thisTestCase != null && thisTestCase.failed)
			throw new RuntimeException("Test case has failed");

	}