/** decrementAndGet decrements and returns current value */
 public void testDecrementAndGet() {
   AtomicLong ai = new AtomicLong(1);
   assertEquals(0, ai.decrementAndGet());
   assertEquals(-1, ai.decrementAndGet());
   assertEquals(-2, ai.decrementAndGet());
   assertEquals(-2, ai.get());
 }
Пример #2
0
  @Override
  public String getLID(DSLAMSource source)
      throws IOException, TimeoutADManClientException, ADManClientException {
    // Update counters:
    String res = null;
    {
      invokeSyncBeginCount.incrementAndGet();
      long runningCount = invokeSyncRunningCount.incrementAndGet();
      long runningCountMax = invokeSyncRunningCountMax.get();
      if (runningCount > runningCountMax) {
        invokeSyncRunningCountMax.compareAndSet(runningCountMax, runningCount);
      }

      synchronized (invokeBeginFrequencyCounter) {
        invokeBeginFrequencyCounter.increment();
      }
    }

    try {
      res = super.getLID(source);
    } catch (Throwable ex) {
      invokeSyncEndFailureCount.incrementAndGet();
    } finally {
      // Update counters:
      {
        invokeSyncEndCount.incrementAndGet();
        invokeSyncRunningCount.decrementAndGet();

        synchronized (invokeEndFrequencyCounter) {
          invokeEndFrequencyCounter.increment();
        }
      }
    }

    return res;
  }