RuneHive-Game
Loading...
Searching...
No Matches
com.runehive.net.LoginExecutorService Class Reference
Inheritance diagram for com.runehive.net.LoginExecutorService:
Collaboration diagram for com.runehive.net.LoginExecutorService:

Public Member Functions

void close () throws IOException
void execute (final LoginSession loginSession, final LoginDetailsPacket loginDetailsPacket)
 LoginExecutorService (final int threads)

Private Attributes

final ExecutorService executorService

Static Private Attributes

static final Logger logger = LoggerFactory.getLogger(LoginExecutorService.class)
static final long TERMINATION_TIMEOUT = 60
static final TimeUnit TERMINATION_TIMEOUT_UNIT = TimeUnit.SECONDS

Detailed Description

Definition at line 14 of file LoginExecutorService.java.

Constructor & Destructor Documentation

◆ LoginExecutorService()

com.runehive.net.LoginExecutorService.LoginExecutorService ( final int threads)

Definition at line 23 of file LoginExecutorService.java.

23 {
24 this.executorService = Executors.newFixedThreadPool(threads);
25 }

Member Function Documentation

◆ close()

void com.runehive.net.LoginExecutorService.close ( ) throws IOException

Definition at line 28 of file LoginExecutorService.java.

28 {
29 final ExecutorService executorService = this.executorService;
30 executorService.shutdown();
31 try {
32 // Wait a while for existing tasks to terminate
33 if (!executorService.awaitTermination(TERMINATION_TIMEOUT, TERMINATION_TIMEOUT_UNIT)) {
34 executorService.shutdownNow(); // Cancel currently executing tasks
35 // Wait a while for tasks to respond to being cancelled
36 if (!executorService.awaitTermination(TERMINATION_TIMEOUT, TERMINATION_TIMEOUT_UNIT)) {
37 logger.warn("Pool did not terminate in {} {}", TERMINATION_TIMEOUT, TERMINATION_TIMEOUT_UNIT);
38 }
39 }
40 } catch (final InterruptedException ex) {
41 // (Re-)Cancel if current thread also interrupted
42 executorService.shutdownNow();
43 // Preserve interrupt status
44 Thread.currentThread().interrupt();
45 }
46 }

References executorService, logger, TERMINATION_TIMEOUT, and TERMINATION_TIMEOUT_UNIT.

◆ execute()

void com.runehive.net.LoginExecutorService.execute ( final LoginSession loginSession,
final LoginDetailsPacket loginDetailsPacket )

Definition at line 48 of file LoginExecutorService.java.

49 {
50 executorService.execute(() -> loginSession.handleUserLoginDetails(loginDetailsPacket));
51 }

References executorService, and com.runehive.net.session.LoginSession.handleUserLoginDetails().

Referenced by com.runehive.net.session.LoginSession.handleClientPacket().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ executorService

final ExecutorService com.runehive.net.LoginExecutorService.executorService
private

Definition at line 21 of file LoginExecutorService.java.

Referenced by close(), and execute().

◆ logger

final Logger com.runehive.net.LoginExecutorService.logger = LoggerFactory.getLogger(LoginExecutorService.class)
staticprivate

Definition at line 16 of file LoginExecutorService.java.

Referenced by close().

◆ TERMINATION_TIMEOUT

final long com.runehive.net.LoginExecutorService.TERMINATION_TIMEOUT = 60
staticprivate

Definition at line 18 of file LoginExecutorService.java.

Referenced by close().

◆ TERMINATION_TIMEOUT_UNIT

final TimeUnit com.runehive.net.LoginExecutorService.TERMINATION_TIMEOUT_UNIT = TimeUnit.SECONDS
staticprivate

Definition at line 19 of file LoginExecutorService.java.

Referenced by close().


The documentation for this class was generated from the following file: