testReleaseFromMultipleThreadsThrowsReferenceCountException() — netty Function Reference
Architecture documentation for the testReleaseFromMultipleThreadsThrowsReferenceCountException() function in AbstractReferenceCountedTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 6ea28285_e958_4567_095a_35d4cecbfe12["testReleaseFromMultipleThreadsThrowsReferenceCountException()"] 7917189b_1868_6962_74c7_fde430107486["AbstractReferenceCountedTest"] 6ea28285_e958_4567_095a_35d4cecbfe12 -->|defined in| 7917189b_1868_6962_74c7_fde430107486 style 6ea28285_e958_4567_095a_35d4cecbfe12 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
common/src/test/java/io/netty/util/AbstractReferenceCountedTest.java lines 135–184
@Test
@Timeout(value = 30000, unit = TimeUnit.MILLISECONDS)
public void testReleaseFromMultipleThreadsThrowsReferenceCountException() throws Exception {
int threads = 4;
Queue<Future<?>> futures = new ArrayDeque<>(threads);
ExecutorService service = Executors.newFixedThreadPool(threads);
final AtomicInteger refCountExceptions = new AtomicInteger();
try {
for (int i = 0; i < 10000; i++) {
final AbstractReferenceCounted referenceCounted = newReferenceCounted();
final CountDownLatch releaseLatch = new CountDownLatch(1);
final AtomicInteger releasedCount = new AtomicInteger();
for (int a = 0; a < threads; a++) {
final AtomicInteger releaseCnt = new AtomicInteger(0);
futures.add(service.submit(() -> {
try {
releaseLatch.await();
try {
if (referenceCounted.release(releaseCnt.incrementAndGet())) {
releasedCount.incrementAndGet();
}
} catch (IllegalReferenceCountException e) {
refCountExceptions.incrementAndGet();
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
}));
}
releaseLatch.countDown();
for (;;) {
Future<?> f = futures.poll();
if (f == null) {
break;
}
f.get();
}
assertEquals(3, refCountExceptions.get());
assertEquals(1, releasedCount.get());
refCountExceptions.set(0);
}
} finally {
service.shutdown();
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does testReleaseFromMultipleThreadsThrowsReferenceCountException() do?
testReleaseFromMultipleThreadsThrowsReferenceCountException() is a function in the netty codebase, defined in common/src/test/java/io/netty/util/AbstractReferenceCountedTest.java.
Where is testReleaseFromMultipleThreadsThrowsReferenceCountException() defined?
testReleaseFromMultipleThreadsThrowsReferenceCountException() is defined in common/src/test/java/io/netty/util/AbstractReferenceCountedTest.java at line 135.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free