Class MultiCoreIOReactor

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, ModalCloseable, IOReactor

    class MultiCoreIOReactor
    extends java.lang.Object
    implements IOReactor
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void awaitShutdown​(TimeValue waitTime)
      Blocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.
      void close()  
      void close​(CloseMode closeMode)
      Shuts down the I/O reactor either gracefully or immediately.
      void close​(CloseMode closeMode, Timeout timeout)
      Shuts down the I/O reactor either gracefully or immediately.
      IOReactorStatus getStatus()
      Returns the current status of the reactor.
      void initiateShutdown()
      Initiates shutdown of the reactor without blocking.
      void start()
      Activates all worker I/O reactors.
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • ioReactors

        private final IOReactor[] ioReactors
      • threads

        private final java.lang.Thread[] threads
      • status

        private final java.util.concurrent.atomic.AtomicReference<IOReactorStatus> status
      • terminated

        private final java.util.concurrent.atomic.AtomicBoolean terminated
    • Constructor Detail

      • MultiCoreIOReactor

        MultiCoreIOReactor​(IOReactor[] ioReactors,
                           java.lang.Thread[] threads)
    • Method Detail

      • getStatus

        public IOReactorStatus getStatus()
        Description copied from interface: IOReactor
        Returns the current status of the reactor.
        Specified by:
        getStatus in interface IOReactor
        Returns:
        reactor status.
      • start

        public final void start()
        Activates all worker I/O reactors. The I/O main reactor will start reacting to I/O events and triggering notification methods. The worker I/O reactor in their turn will start reacting to I/O events and dispatch I/O event notifications to the IOEventHandler associated with the given I/O session.
      • initiateShutdown

        public final void initiateShutdown()
        Description copied from interface: IOReactor
        Initiates shutdown of the reactor without blocking. The reactor is expected to terminate all active connections, to shut down itself and to release system resources it currently holds
        Specified by:
        initiateShutdown in interface IOReactor
      • awaitShutdown

        public final void awaitShutdown​(TimeValue waitTime)
                                 throws java.lang.InterruptedException
        Description copied from interface: IOReactor
        Blocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.
        Specified by:
        awaitShutdown in interface IOReactor
        Parameters:
        waitTime - wait time.
        Throws:
        java.lang.InterruptedException
      • close

        public final void close​(CloseMode closeMode)
        Description copied from interface: IOReactor
        Shuts down the I/O reactor either gracefully or immediately. During graceful shutdown individual I/O sessions should be informed about imminent termination and be given a grace period to complete the ongoing I/O sessions. During immediate shutdown all ongoing I/O sessions get aborted immediately.
        Specified by:
        close in interface IOReactor
        Specified by:
        close in interface ModalCloseable
        Parameters:
        closeMode - How to close the receiver.
      • close

        public void close​(CloseMode closeMode,
                          Timeout timeout)
        Shuts down the I/O reactor either gracefully or immediately. During graceful shutdown individual I/O sessions should be informed about imminent termination and be given a grace period to complete the ongoing I/O sessions. During immediate shutdown all ongoing I/O sessions get aborted immediately.
        Parameters:
        closeMode - How to close the IO reactor.
        timeout - How long to wait for the IO reactor to close gracefully.
        Since:
        5.2
      • close

        public final void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object