public class EpollEventLoop extends SingleThreadEventLoop
EventLoop which uses epoll under the covers. Only works on Linux!SingleThreadEventLoop.ChannelsReadOnlyIterator<T extends Channel>SingleThreadEventExecutor.NonWakeupRunnableAbstractEventExecutor.LazyRunnableDEFAULT_MAX_PENDING_TASKS| Modifier and Type | Method and Description |
|---|---|
protected boolean |
afterScheduledTaskSubmitted(long deadlineNanos)
|
protected boolean |
beforeScheduledTaskSubmitted(long deadlineNanos)
Called from arbitrary non-
EventExecutor threads prior to scheduled task submission. |
protected void |
cleanup()
Do nothing, sub-classes may override
|
void |
closeFileDescriptors()
This method is intended for use by process checkpoint/restore
integration, such as OpenJDK CRaC.
|
int |
getIoRatio()
Returns the percentage of the desired amount of time spent for I/O in the event loop.
|
protected Queue<Runnable> |
newTaskQueue(int maxPendingTasks)
Create a new
Queue which will holds the tasks to execute. |
void |
openFileDescriptors()
This method is intended for use by a process checkpoint/restore
integration, such as OpenJDK CRaC.
|
int |
registeredChannels()
|
Iterator<Channel> |
registeredChannelsIterator() |
protected void |
run()
Run the tasks in the
SingleThreadEventExecutor.taskQueue |
void |
setIoRatio(int ioRatio)
Sets the percentage of the desired amount of time spent for I/O in the event loop.
|
protected void |
wakeup(boolean inEventLoop) |
afterRunningAllTasks, executeAfterEventLoopIteration, hasTasks, next, parent, pendingTasks, register, register, registeraddShutdownHook, addTask, awaitTermination, confirmShutdown, deadlineNanos, delayNanos, execute, inEventLoop, interruptThread, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isShuttingDown, isTerminated, lazyExecute, newTaskQueue, peekTask, pollTask, pollTaskFrom, reject, reject, removeShutdownHook, removeTask, runAllTasks, runAllTasks, runAllTasksFrom, runScheduledAndExecutorTasks, shutdown, shutdownGracefully, takeTask, terminationFuture, threadProperties, updateLastExecutionTime, wakesUpForTaskcancelScheduledTasks, deadlineToDelayNanos, getCurrentTimeNanos, hasScheduledTasks, initialNanoTime, nanoTime, nextScheduledTaskDeadlineNanos, nextScheduledTaskNano, pollScheduledTask, pollScheduledTask, schedule, schedule, scheduleAtFixedRate, scheduleWithFixedDelay, validateScheduledinEventLoop, iterator, newFailedFuture, newProgressivePromise, newPromise, newSucceededFuture, newTaskFor, newTaskFor, runTask, safeExecute, shutdownGracefully, shutdownNow, submit, submit, submitclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitinEventLoop, inEventLoop, newFailedFuture, newProgressivePromise, newPromise, newSucceededFutureisShuttingDown, iterator, schedule, schedule, scheduleAtFixedRate, scheduleWithFixedDelay, shutdown, shutdownGracefully, shutdownGracefully, shutdownNow, submit, submit, submit, terminationFutureawaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminatedforEach, spliterator@UnstableApi public void openFileDescriptors()
protected void wakeup(boolean inEventLoop)
wakeup in class SingleThreadEventExecutorprotected boolean beforeScheduledTaskSubmitted(long deadlineNanos)
AbstractScheduledEventExecutorEventExecutor threads prior to scheduled task submission.
Returns true if the EventExecutor thread should be woken immediately to
process the scheduled task (if not already awake).
If false is returned, AbstractScheduledEventExecutor.afterScheduledTaskSubmitted(long) will be called with
the same value after the scheduled task is enqueued, providing another opportunity
to wake the EventExecutor thread if required.
beforeScheduledTaskSubmitted in class AbstractScheduledEventExecutordeadlineNanos - deadline of the to-be-scheduled task
relative to AbstractScheduledEventExecutor.getCurrentTimeNanos()true if the EventExecutor thread should be woken, false otherwiseprotected boolean afterScheduledTaskSubmitted(long deadlineNanos)
AbstractScheduledEventExecutorAbstractScheduledEventExecutor.beforeScheduledTaskSubmitted(long). Called only after that method returns false.afterScheduledTaskSubmitted in class AbstractScheduledEventExecutordeadlineNanos - relative to AbstractScheduledEventExecutor.getCurrentTimeNanos()true if the EventExecutor thread should be woken, false otherwiseprotected Queue<Runnable> newTaskQueue(int maxPendingTasks)
SingleThreadEventExecutorQueue which will holds the tasks to execute. This default implementation will return a
LinkedBlockingQueue but if your sub-class of SingleThreadEventExecutor will not do any blocking
calls on the this Queue it may make sense to @Override this and return some more performant
implementation that does not support blocking operations at all.newTaskQueue in class SingleThreadEventExecutorpublic int getIoRatio()
public void setIoRatio(int ioRatio)
50, which means the event loop will try to spend the same amount of time for I/O as for non-I/O tasks.public int registeredChannels()
SingleThreadEventLoopChannels registered with this EventLoop or -1
if operation is not supported. The returned value is not guaranteed to be exact accurate and
should be viewed as a best effort.registeredChannels in class SingleThreadEventLooppublic Iterator<Channel> registeredChannelsIterator()
registeredChannelsIterator in class SingleThreadEventLoopChannels registered with this EventLoop.
The returned value is not guaranteed to be exact accurate and
should be viewed as a best effort. This method is expected to be called from within
event loop.protected void run()
SingleThreadEventExecutorSingleThreadEventExecutor.taskQueuerun in class SingleThreadEventExecutorprotected void cleanup()
SingleThreadEventExecutorcleanup in class SingleThreadEventExecutor@UnstableApi public void closeFileDescriptors()
Copyright © 2008–2025 The Netty Project. All rights reserved.