You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2017/10/27 08:27:00 UTC

[jira] [Resolved] (DIRMINA-1015) AbstractIoService creates unnamed non-daemon threads

     [ https://issues.apache.org/jira/browse/DIRMINA-1015?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Emmanuel Lecharny resolved DIRMINA-1015.
----------------------------------------
    Resolution: Not A Problem

We can pass an executor to the {{Service}} constructor, so it's easy to have it creating daemon threads, like with :

{code:java}
Executor executor = Executors.newCachedThreadPool(new ThreadFactory() {
                @Override
                public Thread newThread(Runnable r) {
                    // Create daemon threads.
                    Thread t = Executors.defaultThreadFactory().newThread(r);
                    t.setDaemon(true);
                    return t;
                }
            });

IoAcceptor acceptor = new NioSocketAcceptor(executor, NioProcessor.class);
...
{code}

> AbstractIoService creates unnamed non-daemon threads
> ----------------------------------------------------
>
>                 Key: DIRMINA-1015
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-1015
>             Project: MINA
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 2.0.9
>            Reporter: Matt Kusnierz
>            Priority: Minor
>
> The org.apache.mina.core.service.AbstractIoService can create an executor in its constructor. This executor is creating simply using the java.util.concurrent.Executors.newCachedThreadPool() factory method. But this create threads with unhelpful "thread-x-pool-y" names, and more importantly creates non-daemon threads. The daemon thread aspect can lead to applications not properly terminating. When no executor is supplied as a constructor argument, the default should be to create a newCachedThreadPool, but to supply a ThreadFactory that a) creates "mina-xxx" named threads, and b) creates daemon threads.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)