commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Richard Atkins (JIRA)" <>
Subject [jira] [Commented] (EXEC-69) DefaultExecutor async execute prevents shutdown hooks running
Date Sun, 04 Nov 2012 05:13:14 GMT


Richard Atkins commented on EXEC-69:

The simplest fix is to let a ShutdownHookProcessDestroyer do its job is to set the asynchronous
executors' thread to be a daemon thread, although I don't believe that's a blanket solution
for all async exec use cases. Sometimes callers really don't want to exit unless the child
process is already done (and the result handler has finished handling the result).

The answer lies in pushing that decision back on the caller - they either configure their
own thread factory (assuming is implemented)
to choose if the threads should be user level or daemon level, or we do it for them, based
on whether there's a process destroyer registered.

The recent change on trunk to use a createThread factory method gets us part of the way there
for either solution.
> DefaultExecutor async execute prevents shutdown hooks running
> -------------------------------------------------------------
>                 Key: EXEC-69
>                 URL:
>             Project: Commons Exec
>          Issue Type: Bug
>    Affects Versions: 1.1
>            Reporter: Richard Atkins
> The DefaultExecutor asynchronous execute methods create a user-level thread to monitor
the process it starts. This prevents shutdown hooks - like the one in ShutdownHookProcessDestroyer
- from running. This makes these two classes incompatible.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message