private Session session;
private QuerySupport querySupport;
private final QueryProcessor processor;
+ private final Semaphore requests;
final private ArrayList<SessionTask> tasks = new ArrayList<SessionTask>();
// final private ArrayList<SessionTask> own;
sleepers = processor.sleepers;
querySupport = processor.querySupport;
threadStates = processor.threadStates;
+ requests = processor.requests;
// delayQueues = processor.delayQueues;
// executors = processor.executors;
// threadLocks = processor.threadLocks;
private boolean pumpTask() {
if(!processor.freeScheduling.isEmpty()) {
tasks.add(processor.freeScheduling.removeFirst());
+ processor.queueLength.decrementAndGet();
return true;
}
return false;
threadStates[index] = ThreadState.SLEEP;
- synchronized (querySupportLock) {
- querySupportLock.wait(100);
-
- }
-
-// boolean woken = condition.await(10, TimeUnit.MILLISECONDS);
-// if(!woken) {
-// synchronized (querySupportLock) {
-// if(!processor.freeScheduling.isEmpty())
-// System.err.println("some tasks are available!");
-// }
-// }
+ requests.acquire();
sleepers.decrementAndGet();