/** * Scan the priority queue of queries with a specified deadline, halting any * queries whose deadline has expired. */ static private void checkDeadlines(final long nowNanos, final PriorityBlockingQueue<QueryDeadline> deadlineQueue) { /* * While the queue is thread safe, we want at most one thread at a time * to be inspecting the queue for queries whose deadlines have expired. */ synchronized (deadlineQueue) { /* * Check the head of the deadline queue for any queries whose * deadline has expired. */ checkHeadOfDeadlineQueue(nowNanos, deadlineQueue); if (deadlineQueue.size() > DEADLINE_QUEUE_SCAN_SIZE) { /* * Scan the deadline queue, removing entries for expired * queries. */ scanDeadlineQueue(nowNanos, deadlineQueue); } } }
/** * Scan the priority queue of queries with a specified deadline, halting any * queries whose deadline has expired. */ static private void checkDeadlines(final long nowNanos, final PriorityBlockingQueue<QueryDeadline> deadlineQueue) { /* * While the queue is thread safe, we want at most one thread at a time * to be inspecting the queue for queries whose deadlines have expired. */ synchronized (deadlineQueue) { /* * Check the head of the deadline queue for any queries whose * deadline has expired. */ checkHeadOfDeadlineQueue(nowNanos, deadlineQueue); if (deadlineQueue.size() > DEADLINE_QUEUE_SCAN_SIZE) { /* * Scan the deadline queue, removing entries for expired * queries. */ scanDeadlineQueue(nowNanos, deadlineQueue); } } }