MultiThreadIoEventLoopGroupTest Class — netty Architecture
Architecture documentation for the MultiThreadIoEventLoopGroupTest class in MultiThreadIoEventLoopGroupTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD b4c07204_4723_7056_4606_4ede1e592317["MultiThreadIoEventLoopGroupTest"] e0d4d133_322e_1155_8441_23fad36b03b0["MultiThreadIoEventLoopGroupTest.java"] b4c07204_4723_7056_4606_4ede1e592317 -->|defined in| e0d4d133_322e_1155_8441_23fad36b03b0 9dc088c7_b110_3105_08f2_60a9b86cd695["testScalingWithIoRegistrationLifecycle()"] b4c07204_4723_7056_4606_4ede1e592317 -->|method| 9dc088c7_b110_3105_08f2_60a9b86cd695 e7d55bd2_9308_0bb3_c01a_5eb1fee6b142["testShouldNotSuspendExecutorWithActiveRegistration()"] b4c07204_4723_7056_4606_4ede1e592317 -->|method| e7d55bd2_9308_0bb3_c01a_5eb1fee6b142 45e835b7_601b_955d_a619_3fc8956adbbc["startAllExecutors()"] b4c07204_4723_7056_4606_4ede1e592317 -->|method| 45e835b7_601b_955d_a619_3fc8956adbbc 7f3d45f6_1f4d_1a16_9fd4_70c9200affc0["countActiveExecutors()"] b4c07204_4723_7056_4606_4ede1e592317 -->|method| 7f3d45f6_1f4d_1a16_9fd4_70c9200affc0 b74dd729_3f39_9bd3_d59a_a603dd2a7418["EventExecutor()"] b4c07204_4723_7056_4606_4ede1e592317 -->|method| b74dd729_3f39_9bd3_d59a_a603dd2a7418 5adea2a2_060c_b4a5_62c9_a2b2c4c16c53["waitForSuspension()"] b4c07204_4723_7056_4606_4ede1e592317 -->|method| 5adea2a2_060c_b4a5_62c9_a2b2c4c16c53
Relationship Graph
Source Code
transport/src/test/java/io/netty/channel/MultiThreadIoEventLoopGroupTest.java lines 37–250
public class MultiThreadIoEventLoopGroupTest {
private static class TestIoHandle implements IoHandle {
@Override
public void handle(IoRegistration registration, IoEvent readyOps) {
}
@Override
public void close() {
}
}
private static class TestIoHandlerFactory implements IoHandlerFactory {
@Override
public IoHandler newHandler(ThreadAwareExecutor ioExecutor) {
return new IoHandler() {
@Override public int run(IoHandlerContext context) {
return 0;
}
@Override public void wakeup() {
}
@Override
public IoRegistration register(IoHandle handle) {
return new IoRegistration() {
private final AtomicBoolean valid = new AtomicBoolean(true);
@Override public <T> T attachment() {
return (T) handle;
}
@Override public long submit(IoOps ops) {
return 0;
}
@Override public boolean isValid() {
return valid.get();
}
@Override public boolean cancel() {
return valid.compareAndSet(true, false);
}
};
}
@Override public boolean isCompatible(Class<? extends IoHandle> handleType) {
return true;
}
};
}
@Override
public boolean isChangingThreadSupported() {
return true;
}
}
private static class TestableIoEventLoop extends SingleThreadIoEventLoop {
private final AtomicBoolean simulateWorkload = new AtomicBoolean(false);
TestableIoEventLoop(IoEventLoopGroup parent, Executor executor, IoHandlerFactory ioHandlerFactory) {
super(parent, executor, ioHandlerFactory);
}
public void setSimulateWorkload(boolean active) {
simulateWorkload.set(active);
if (active) {
execute(() -> { /* NO-OP */ });
}
}
@Override
protected void run() {
do {
if (simulateWorkload.get()) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
}
reportActiveIoTime(TimeUnit.MILLISECONDS.toNanos(100));
} else {
Runnable task = takeTask();
if (task != null) {
safeExecute(task);
Source
Frequently Asked Questions
What is the MultiThreadIoEventLoopGroupTest class?
MultiThreadIoEventLoopGroupTest is a class in the netty codebase, defined in transport/src/test/java/io/netty/channel/MultiThreadIoEventLoopGroupTest.java.
Where is MultiThreadIoEventLoopGroupTest defined?
MultiThreadIoEventLoopGroupTest is defined in transport/src/test/java/io/netty/channel/MultiThreadIoEventLoopGroupTest.java at line 37.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free