racySubmissionMissWakeup() — netty Function Reference
Architecture documentation for the racySubmissionMissWakeup() function in ManualEventLoopTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD da7bff55_39c9_598a_d0b5_6573386604bf["racySubmissionMissWakeup()"] e45aee7f_05b1_581f_0dc9_9f5ffbeab685["ManualEventLoopTest"] da7bff55_39c9_598a_d0b5_6573386604bf -->|defined in| e45aee7f_05b1_581f_0dc9_9f5ffbeab685 affd8661_2609_7b31_4428_aa4e1953879e["firstRacySubmissionMissWakeupEpoll()"] affd8661_2609_7b31_4428_aa4e1953879e -->|calls| da7bff55_39c9_598a_d0b5_6573386604bf 1c2f0eff_f804_4fab_6465_439e9677bcb2["secondRacySubmissionMissWakeupEpoll()"] 1c2f0eff_f804_4fab_6465_439e9677bcb2 -->|calls| da7bff55_39c9_598a_d0b5_6573386604bf a00476b1_7dfb_d468_f53a_dbba89da2249["ManualMultithreadedIoEventLoopGroup()"] da7bff55_39c9_598a_d0b5_6573386604bf -->|calls| a00476b1_7dfb_d468_f53a_dbba89da2249 ee4df638_05ee_494c_0499_c03ca51b00e5["beforeCanBlock()"] da7bff55_39c9_598a_d0b5_6573386604bf -->|calls| ee4df638_05ee_494c_0499_c03ca51b00e5 style da7bff55_39c9_598a_d0b5_6573386604bf fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
transport-native-epoll/src/test/java/io/netty/channel/epoll/ManualEventLoopTest.java lines 62–94
private void racySubmissionMissWakeup(IoHandlerFactory handlerFactory, long canBlockAttempt)
throws Exception {
CyclicBarrier waitBeforeSubmittingTask = new CyclicBarrier(2);
CountDownLatch taskSubmitted = new CountDownLatch(1);
AtomicLong canBlock = new AtomicLong(0);
ManualMultithreadedIoEventLoopGroup group = new ManualMultithreadedIoEventLoopGroup(handlerFactory) {
@Override
protected void beforeCanBlock(Executor executor) {
if (canBlock.incrementAndGet() == canBlockAttempt) {
try {
waitBeforeSubmittingTask.await();
} catch (Throwable ignore) {
//
}
try {
taskSubmitted.await();
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
};
waitBeforeSubmittingTask.await();
// depending on canBlockAttempt this submission could observe an AWAKE event loop
// or with a setup NONE deadline (e.g. Long.MAX_VALUE).
// In the latter case, it can be already asleep or ready to do it.
Future<?> submitted = group.submit(() -> {
});
// unblock canBlock
taskSubmitted.countDown();
submitted.get();
group.shutdownGracefully(0, 0, TimeUnit.SECONDS).get();
}
Domain
Subdomains
Source
Frequently Asked Questions
What does racySubmissionMissWakeup() do?
racySubmissionMissWakeup() is a function in the netty codebase, defined in transport-native-epoll/src/test/java/io/netty/channel/epoll/ManualEventLoopTest.java.
Where is racySubmissionMissWakeup() defined?
racySubmissionMissWakeup() is defined in transport-native-epoll/src/test/java/io/netty/channel/epoll/ManualEventLoopTest.java at line 62.
What does racySubmissionMissWakeup() call?
racySubmissionMissWakeup() calls 2 function(s): ManualMultithreadedIoEventLoopGroup, beforeCanBlock.
What calls racySubmissionMissWakeup()?
racySubmissionMissWakeup() is called by 2 function(s): firstRacySubmissionMissWakeupEpoll, secondRacySubmissionMissWakeupEpoll.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free