Java Code Examples for java.util.concurrent.atomic.AtomicLong#getAndSet()
The following examples show how to use
java.util.concurrent.atomic.AtomicLong#getAndSet() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Subscriptions.java From smallrye-mutiny with Apache License 2.0 | 6 votes |
/** * Atomically requests from the Subscription in the field if not null, otherwise accumulates * the request amount in the requested field to be requested once the field is set to non-null. * * @param field the target field that may already contain a Subscription * @param requested the current requested amount * @param requests the request amount, positive (verified) */ public static void requestIfNotNullOrAccumulate(AtomicReference<Subscription> field, AtomicLong requested, long requests) { Subscription subscription = field.get(); if (subscription != null) { subscription.request(requests); } else { if (requests > 0) { add(requested, requests); subscription = field.get(); if (subscription != null) { long r = requested.getAndSet(0L); if (r != 0L) { subscription.request(r); } } } } }
Example 2
Source File: InMemoryReporterMetrics.java From buffer-slayer with Apache License 2.0 | 5 votes |
@Override public void updateQueuedMessages(MessageKey key, int update) { AtomicLong metric = queuedMessages.get(key); if (metric == null) { metric = queuedMessages.putIfAbsent(key, new AtomicLong(update)); if (metric == null) { queuedMessagesAccumulator.add(update); return; } } long prev = metric.getAndSet(update); queuedMessagesAccumulator.add(update - prev); }
Example 3
Source File: SpectatorReporter.java From spectator with Apache License 2.0 | 5 votes |
private long getAndSetPrevious(String name, long newValue) { AtomicLong prev = previousValues.get(name); if (prev == null) { AtomicLong tmp = new AtomicLong(0L); prev = previousValues.putIfAbsent(name, tmp); prev = (prev == null) ? tmp : prev; } return prev.getAndSet(newValue); }
Example 4
Source File: IndexService.java From disthene with MIT License | 5 votes |
private void handleWithCache(Metric metric) { ConcurrentMap<String, AtomicLong> tenantPaths = getTenantPaths(metric.getTenant()); AtomicLong lastSeen = tenantPaths.get(metric.getPath()); if (lastSeen == null) { lastSeen = tenantPaths.putIfAbsent(metric.getPath(), new AtomicLong(System.currentTimeMillis() / 1000L)); if (lastSeen == null) { metrics.offer(metric); } else { lastSeen.getAndSet(System.currentTimeMillis() / 1000L); } } else { lastSeen.getAndSet(System.currentTimeMillis() / 1000L); } }
Example 5
Source File: ProgressWatchdog.java From ignite with Apache License 2.0 | 5 votes |
/** * @param elapsedMsFromPrevTick time from previous tick, millis. * @param absVal current value * @param cnt counter stores previous value. * @return value change from previous tick. */ private long detectDelta(long elapsedMsFromPrevTick, long absVal, AtomicLong cnt) { long cpPagesChange = absVal - cnt.getAndSet(absVal); if (cpPagesChange < 0) cpPagesChange = 0; return (cpPagesChange * 1000) / elapsedMsFromPrevTick; }
Example 6
Source File: StepValueTest.java From micrometer with Apache License 2.0 | 5 votes |
@Test void poll() { final AtomicLong aLong = new AtomicLong(42); final long stepTime = 60; final StepValue<Long> stepValue = new StepValue<Long>(clock, stepTime) { @Override public Supplier<Long> valueSupplier() { return () -> aLong.getAndSet(0); } @Override public Long noValue() { return 0L; } }; assertThat(stepValue.poll()).isEqualTo(0L); clock.add(Duration.ofMillis(1)); assertThat(stepValue.poll()).isEqualTo(0L); clock.add(Duration.ofMillis(59)); assertThat(stepValue.poll()).isEqualTo(42L); clock.add(Duration.ofMillis(60)); assertThat(stepValue.poll()).isEqualTo(0L); clock.add(Duration.ofMillis(60)); assertThat(stepValue.poll()).isEqualTo(0L); aLong.set(24); assertThat(stepValue.poll()).isEqualTo(0L); clock.add(Duration.ofMillis(60)); assertThat(stepValue.poll()).isEqualTo(24L); }
Example 7
Source File: MqMetricReporter.java From pmq with Apache License 2.0 | 5 votes |
private long getChangeCount(String name, long count) { if(!this.lastReport.containsKey(name)){ this.lastReport.put(name, new AtomicLong(0)); } //this.lastReport.putIfAbsent(name, new AtomicLong(0)); AtomicLong last = this.lastReport.get(name); long lastCount = last.getAndSet(count); return count - lastCount; }
Example 8
Source File: MqMetricReporter.java From pmq with Apache License 2.0 | 5 votes |
private long getChangeCount(String name, long count) { if(!this.lastReport.containsKey(name)){ this.lastReport.put(name, new AtomicLong(0)); } //this.lastReport.putIfAbsent(name, new AtomicLong(0)); AtomicLong last = this.lastReport.get(name); long lastCount = last.getAndSet(count); return count - lastCount; }
Example 9
Source File: MqMetricReporter.java From pmq with Apache License 2.0 | 5 votes |
private long getChangeCount(String name, long count) { if(!this.lastReport.containsKey(name)){ this.lastReport.put(name, new AtomicLong(0)); } //this.lastReport.putIfAbsent(name, new AtomicLong(0)); AtomicLong last = this.lastReport.get(name); long lastCount = last.getAndSet(count); return count - lastCount; }
Example 10
Source File: MqMetricReporter.java From pmq with Apache License 2.0 | 5 votes |
private long getChangeCount(String name, long count) { if(!this.lastReport.containsKey(name)){ this.lastReport.put(name, new AtomicLong(0)); } //this.lastReport.putIfAbsent(name, new AtomicLong(0)); AtomicLong last = this.lastReport.get(name); long lastCount = last.getAndSet(count); return count - lastCount; }
Example 11
Source File: MqMetricReporter.java From pmq with Apache License 2.0 | 5 votes |
private long getChangeCount(String name, long count) { if(!this.lastReport.containsKey(name)){ this.lastReport.put(name, new AtomicLong(0)); } //this.lastReport.putIfAbsent(name, new AtomicLong(0)); AtomicLong last = this.lastReport.get(name); long lastCount = last.getAndSet(count); return count - lastCount; }
Example 12
Source File: Subscriptions.java From smallrye-mutiny with Apache License 2.0 | 5 votes |
/** * Atomically sets the new {@link Subscription} in the container and requests any accumulated amount * from the requested counter. * * @param container the target field for the new Subscription * @param requested the current requested amount * @param subscription the new Subscription, must not be {@code null} * @return true if the Subscription was set the first time */ public static boolean setIfEmptyAndRequest(AtomicReference<Subscription> container, AtomicLong requested, Subscription subscription) { if (Subscriptions.setIfEmpty(container, subscription)) { long r = requested.getAndSet(0L); if (r > 0L) { subscription.request(r); } else if (r < 0) { throw new IllegalArgumentException("Invalid amount of request"); } return true; } return false; }
Example 13
Source File: DoubleDistributionSummary.java From spectator with Apache License 2.0 | 4 votes |
private double toRateDouble(AtomicLong num, long deltaMillis, boolean reset) { final long v = reset ? num.getAndSet(ZERO) : num.get(); final double delta = deltaMillis / 1000.0; return Double.longBitsToDouble(v) / delta; }
Example 14
Source File: WorkProcessorPipelineSourceOperator.java From presto with Apache License 2.0 | 4 votes |
private static long deltaAndSet(AtomicLong currentValue, long newValue) { return newValue - currentValue.getAndSet(newValue); }
Example 15
Source File: TestJsonFacets.java From lucene-solr with Apache License 2.0 | 4 votes |
/** atomicly resets the acctual AtomicLong value matches the expected and resets it to 0 */ private static final void assertEqualsAndReset(String msg, long expected, AtomicLong actual) { final long current = actual.getAndSet(0); assertEquals(msg, expected, current); }
Example 16
Source File: TestJsonFacets.java From lucene-solr with Apache License 2.0 | 4 votes |
/** atomicly resets the acctual AtomicLong value matches the expected and resets it to 0 */ private static final void assertEqualsAndReset(long expected, AtomicLong actual) { final long current = actual.getAndSet(0); assertEquals(expected, current); }
Example 17
Source File: DoubleDistributionSummary.java From spectator with Apache License 2.0 | 4 votes |
private double toDouble(AtomicLong num, boolean reset) { final long v = reset ? num.getAndSet(ZERO) : num.get(); return Double.longBitsToDouble(v); }
Example 18
Source File: DoubleDistributionSummary.java From spectator with Apache License 2.0 | 4 votes |
private double toRateLong(AtomicLong num, long deltaMillis, boolean reset) { final long v = reset ? num.getAndSet(0L) : num.get(); final double delta = deltaMillis / 1000.0; return v / delta; }
Example 19
Source File: ClusterTimerTest.java From aeron with Apache License 2.0 | 3 votes |
@Test @Timeout(10) public void shouldTriggerRescheduledTimerAfterReplay() { final AtomicLong triggeredTimersCounter = new AtomicLong(); launchReschedulingService(triggeredTimersCounter); connectClient(); Tests.awaitValue(triggeredTimersCounter, 2); forceCloseForRestart(); long triggeredSinceStart = triggeredTimersCounter.getAndSet(0); launchClusteredMediaDriver(false); launchReschedulingService(triggeredTimersCounter); Tests.awaitValue(triggeredTimersCounter, triggeredSinceStart + 2); forceCloseForRestart(); triggeredSinceStart = triggeredTimersCounter.getAndSet(0); launchClusteredMediaDriver(false); launchReschedulingService(triggeredTimersCounter); Tests.awaitValue(triggeredTimersCounter, triggeredSinceStart + 4); ClusterTests.failOnClusterError(); }
Example 20
Source File: GridOffHeapPartitionedMapPerformanceAbstractTest.java From ignite with Apache License 2.0 | 2 votes |
/** * @throws Exception If failed. */ private void checkPuts(int threadCnt, long duration) throws Exception { final AtomicLong opCnt = new AtomicLong(); final AtomicLong totalOpCnt = new AtomicLong(); final AtomicBoolean done = new AtomicBoolean(); long start = System.currentTimeMillis(); IgniteInternalFuture<?> fut = multithreadedAsync(new Callable<Object>() { @Override public Object call() throws Exception { Random rnd = new Random(); byte[] val = new byte[1024]; long locTotalOpCnt = 0; while (!done.get()) { for (int i = 0; i < 500; i++) { T3<Integer, Integer, byte[]> key = randomKey(rnd); map.put(key.get1(), key.get2(), key.get3(), val); } locTotalOpCnt += 500; opCnt.addAndGet(500); } totalOpCnt.addAndGet(locTotalOpCnt); return null; } }, threadCnt); final int step = 2000; while (System.currentTimeMillis() - start < duration) { U.sleep(step); long ops = opCnt.getAndSet(0); info("Putting " + (ops * 1000) / step + " ops/sec"); } done.set(true); fut.get(); long end = System.currentTimeMillis(); info("Average put performance: " + (totalOpCnt.get() * 1000) / (end - start) + " ops/sec"); }