Reduce unnecessary thread creation and destruction caused by IdleStatusChecker ------------------------------------------------------------------------------
Key: DIRMINA-547 URL: https://issues.apache.org/jira/browse/DIRMINA-547 Project: MINA Issue Type: Improvement Components: Core Affects Versions: 2.0.0-M1 Reporter: Trustin Lee Assignee: Trustin Lee Priority: Minor Fix For: 2.0.0-M2 When there is only one service and the service is being activated and deactivated repetitively, ScheduledThreadPoolExecutor keeps being created and destructed by IdleStatusChecker, which causes big overhead. This becomes a real problem when a user uses a Connector to maintain just one connection, which is opened and closed very frequently, because the activation and the deactivation of the service follows the creation and the destruction of a session. The solution is make the life cycle of IdleStatusChecker thread to follow the life cycle of respective services. For now, IdleStatusChecker is a singleton and manages threads by itself. By moving all thread management code to AbstractIoService, IdleStatusChecker doesn't need to start and stop thread excessively but AbstractIoService will stop the thread when dispose() is called explicitly by user, like other worker threads. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.