{
pool.runTask(new TestTask(HOLD_START, "test1"));
started.wait(1);
pool.runTask(new TestTask(BASIC, "test2"));
assertEquals(0, rejected.tasks.size());
pool.runTask(new TestTask(BASIC, "test3"));
assertEquals(makeExpected(new Object[] {"test3"}), rejected.tasks);
started.release("test1");
completed.wait(2);
assertEquals(makeExpected(new Object[] {"test1", "test2"}), completed.tasks);