- if(caller == performer) {
- request.run(caller);
- } else {
- ReentrantLock queueLock = threadLocks[performer];
- queueLock.lock();
- queues[performer].add(request);
- // This thread could have been sleeping
- if(queues[performer].size() == 1) {
- if(ThreadState.SLEEP == threadStates[performer]) sleepers.decrementAndGet();
- threadConditions[performer].signalAll();
- }
- queueLock.unlock();
- }
+// if(caller == performer) {
+// request.run(caller);
+// } else {
+
+// if(performer == THREADS) {
+
+ synchronized(querySupportLock) {
+
+ freeScheduling.add(request);
+
+ //System.err.println("schedule free task " + request + " => " + freeScheduling.size());
+
+ for(int i=0;i<THREADS;i++) {
+ ReentrantLock queueLock = threadLocks[i];
+ queueLock.lock();
+ //queues[performer].add(request);
+ //if(ThreadState.SLEEP == threadStates[i]) sleepers.decrementAndGet();
+ threadConditions[i].signalAll();
+ queueLock.unlock();
+ }
+
+ }
+
+ return;
+
+// }
+//
+// ReentrantLock queueLock = threadLocks[performer];
+// queueLock.lock();
+// queues[performer].add(request);
+// // This thread could have been sleeping
+// if(queues[performer].size() == 1) {
+// //if(ThreadState.SLEEP == threadStates[performer]) sleepers.decrementAndGet();
+// threadConditions[performer].signalAll();
+// }
+// queueLock.unlock();
+// }