Package org.apache.hc.core5.reactor
Class MultiCoreIOReactor
- java.lang.Object
-
- org.apache.hc.core5.reactor.MultiCoreIOReactor
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,ModalCloseable,IOReactor
class MultiCoreIOReactor extends java.lang.Object implements IOReactor
-
-
Field Summary
Fields Modifier and Type Field Description private IOReactor[]ioReactorsprivate java.util.concurrent.atomic.AtomicReference<IOReactorStatus>statusprivate java.util.concurrent.atomic.AtomicBooleanterminatedprivate java.lang.Thread[]threads
-
Constructor Summary
Constructors Constructor Description MultiCoreIOReactor(IOReactor[] ioReactors, java.lang.Thread[] threads)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidawaitShutdown(TimeValue waitTime)Blocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.voidclose()voidclose(CloseMode closeMode)Shuts down the I/O reactor either gracefully or immediately.voidclose(CloseMode closeMode, Timeout timeout)Shuts down the I/O reactor either gracefully or immediately.IOReactorStatusgetStatus()Returns the current status of the reactor.voidinitiateShutdown()Initiates shutdown of the reactor without blocking.voidstart()Activates all worker I/O reactors.java.lang.StringtoString()
-
-
-
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:IOReactorReturns the current status of the reactor.
-
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 theIOEventHandlerassociated with the given I/O session.
-
initiateShutdown
public final void initiateShutdown()
Description copied from interface:IOReactorInitiates 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:
initiateShutdownin interfaceIOReactor
-
awaitShutdown
public final void awaitShutdown(TimeValue waitTime) throws java.lang.InterruptedException
Description copied from interface:IOReactorBlocks for the given period of time in milliseconds awaiting the completion of the reactor shutdown.- Specified by:
awaitShutdownin interfaceIOReactor- Parameters:
waitTime- wait time.- Throws:
java.lang.InterruptedException
-
close
public final void close(CloseMode closeMode)
Description copied from interface:IOReactorShuts 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:
closein interfaceIOReactor- Specified by:
closein interfaceModalCloseable- 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:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-