Closed
Description
In the scenario in which a ThreadPoolExecutor has received #shutdown
and there are active threads/tasks, there is an inconsistency between what JRuby and C Ruby return for #shutdown?
:
- JRuby will return
#shutdown? => true
while there are still active threads/tasks, at the same time as#shuttingdown? => true
. Java's executor service narrowly defines#isShutdown
as "no new tasks will be accepted" which is distinct from#isTerminated
which is "all tasks have completed following shut down". - The Ruby implementation does more of what my expectations are:
#shutdown? => false
while there are still active threads/tasks, at the same time as#shuttingdown? => true
.
It's fairly easy to work around this inconsistency using executor.shutdown? && !executor.shuttingdown?
to achieve the same result in both rubies for determining when there are no more threads/tasks on a shutdown executor. It would be nice if the behavior was aligned.
Metadata
Metadata
Assignees
Labels
No labels