/** * {@inheritDoc} */ @Override public int getNumberOfWaitingThreads() { return semaphore.getQueueLength(); } }
/** * Get the number of threads waiting to acquire a permit. * @return snapshot of the length of the queue of blocked threads. */ public int getWaitingCount() { return queueingPermits.getQueueLength(); }
public int getQueryWaitingCount() { return semaphore.getQueueLength(); }
private void acquireSema(String context, Logger logger) throws InterruptedException { if (_refreshThreadSemaphore != null) { long startTime = System.currentTimeMillis(); logger.info("Waiting for lock to refresh : {}, queue-length: {}", context, _refreshThreadSemaphore.getQueueLength()); _refreshThreadSemaphore.acquire(); logger.info("Acquired lock to refresh segment: {} (lock-time={}ms, queue-length={})", context, System.currentTimeMillis() - startTime, _refreshThreadSemaphore.getQueueLength()); } else { LOGGER.info("Locking of refresh threads disabled (segment: {})", context); } }
@Override protected void onMessage(RedissonLockEntry value, Long message) { if (message.equals(unlockMessage)) { Runnable runnableToExecute = value.getListeners().poll(); if (runnableToExecute != null) { runnableToExecute.run(); } value.getLatch().release(); } else if (message.equals(readUnlockMessage)) { while (true) { Runnable runnableToExecute = value.getListeners().poll(); if (runnableToExecute == null) { break; } runnableToExecute.run(); } value.getLatch().release(value.getLatch().getQueueLength()); } }
@Override protected void onMessage(RedissonLockEntry value, Long message) { if (message.equals(unlockMessage)) { Runnable runnableToExecute = value.getListeners().poll(); if (runnableToExecute != null) { runnableToExecute.run(); } value.getLatch().release(); } else if (message.equals(readUnlockMessage)) { while (true) { Runnable runnableToExecute = value.getListeners().poll(); if (runnableToExecute == null) { break; } runnableToExecute.run(); } value.getLatch().release(value.getLatch().getQueueLength()); } }
"invokeOnewayImpl tryAcquire semaphore timeout, %dms, waiting thread nums: %d semaphoreAsyncValue: %d", timeoutMillis, this.semaphoreOneway.getQueueLength(), this.semaphoreOneway.availablePermits() );
String.format("invokeAsyncImpl tryAcquire semaphore timeout, %dms, waiting thread nums: %d semaphoreAsyncValue: %d", timeoutMillis, this.semaphoreAsync.getQueueLength(), this.semaphoreAsync.availablePermits() );
if (log.isTraceEnabled()) { log.trace("{} session: {} state: {} keep-alive running: {}", new Object[] { conn.getClass().getSimpleName(), conn.getSessionId(), RTMP.states[conn.getStateCode()], conn.running }); log.trace("Decoder lock - permits: {} queue length: {}", conn.decoderLock.availablePermits(), conn.decoderLock.getQueueLength()); log.trace("Encoder lock - permits: {} queue length: {}", conn.encoderLock.availablePermits(), conn.encoderLock.getQueueLength()); log.trace("Client streams: {} used: {}", conn.getStreams().size(), conn.getUsedStreamCount()); if (!conn.getAttributes().isEmpty()) {
} else { LOGGER.warn("invokeAsyncImpl tryAcquire semaphore timeout, " + timeoutMillis + " waiting thread nums: " + this.semaphoreAsync.getQueueLength()); LOGGER.warn(request.toString());
} else { LOGGER.warn("invokeAsyncImpl tryAcquire semaphore timeout, " + timeoutMillis + " waiting thread nums: " + this.semaphoreAsync.getQueueLength()); LOGGER.warn(request.toString());
} else { LOGGER.warn("invokeOnewayImpl tryAcquire semaphore timeout, " + timeoutMillis + " waiting thread nums: " + this.semaphoreOneway.getQueueLength()); LOGGER.warn(request.toString());
} else { LOGGER.warn("invokeOnewayImpl tryAcquire semaphore timeout, " + timeoutMillis + " waiting thread nums: " + this.semaphoreOneway.getQueueLength()); LOGGER.warn(request.toString());
@Override public SearchResults search(Query query, int start, int limit, int scoringFunctionIndex, Map<String, String> extraParameters) throws InterruptedException { // call delegate searcher try { int queueLen = semaphore.getQueueLength(); if (queueLen >= maxSearchQueueLength) { logger.warn("Too many waiting to search, queue length = " + queueLen + ", returning without searching"); throw new InterruptedException("Too many concurrent searches"); } if (queueLen > 0) { logger.warn("Concurrent searches queue length is " + queueLen + ", will wait"); } // consider adding a timeout to this call to semaphore.acquire() semaphore.acquire(); try { return this.delegate.search(query, start, limit, scoringFunctionIndex, extraParameters); } finally { semaphore.release(); } } catch (InterruptedException e) { logger.warn("Throwing InterruptedException: " + e.getMessage()); throw e; } }
@Override public int countMatches(Query query) throws InterruptedException { try { int queueLen = semaphore.getQueueLength(); if (queueLen >= maxSearchQueueLength) { logger.warn("Too many waiting to search, queue length = " + queueLen + ", returning without searching"); throw new InterruptedException("Too many concurrent searches"); } if (queueLen > 0) { logger.warn("Concurrent searches queue length is " + queueLen + ", will wait"); } // consider adding a timeout to this call to semaphore.acquire() semaphore.acquire(); try { return this.delegate.countMatches(query); } finally { semaphore.release(); } } catch (InterruptedException e) { logger.warn("Throwing InterruptedException: " + e.getMessage()); throw e; } } }
"invokeOnewayImpl tryAcquire semaphore timeout, %dms, waiting thread nums: %d semaphoreAsyncValue: %d", timeoutMillis, this.semaphoreOneway.getQueueLength(), this.semaphoreOneway.availablePermits() );
String.format("invokeAsyncImpl tryAcquire semaphore timeout, %dms, waiting thread nums: %d semaphoreAsyncValue: %d", timeoutMillis, this.semaphoreAsync.getQueueLength(), this.semaphoreAsync.availablePermits() );
"invokeOnewayImpl tryAcquire semaphore timeout, %dms, waiting thread nums: %d semaphoreAsyncValue: %d", timeoutMillis, this.semaphoreOneway.getQueueLength(), this.semaphoreOneway.availablePermits() );
String.format("invokeAsyncImpl tryAcquire semaphore timeout, %dms, waiting thread nums: %d semaphoreAsyncValue: %d", timeoutMillis, this.semaphoreAsync.getQueueLength(), this.semaphoreAsync.availablePermits() );
@Override public void onError(final Throwable e) { LOGGER.trace("onError", e); obs.onError(e); releaseAll(); LOGGER.trace("--- (queueLength, available) = ({}, {})", sem.getQueueLength(), sem.availablePermits()); }