[
https://issues.apache.org/jira/browse/THRIFT-11?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12597630#action_12597630
]
Johan Stuyts commented on THRIFT-11:
------------------------------------
IMHO your first patch was fine. {{AtomicBoolean}} is nothing more than an
object wrapper around a volatile {{int}}. So basically it is the same as using
a volatile {{boolean}}.
Using {{AtomicBoolean}} also creates a dependency on Java 1.6 which might not
be desirable.
I do not know why {{AtomicBoolean}} was introduced in 1.6, but by looking at
the code I think it allows you to atomically get and set, and compare and set a
boolean (without using synchronization?). Both these functions are not used by
your second patch.
> TThreadPoolServer won't shut down gracefully
> --------------------------------------------
>
> Key: THRIFT-11
> URL: https://issues.apache.org/jira/browse/THRIFT-11
> Project: Thrift
> Issue Type: Bug
> Components: Library (Java)
> Reporter: Bryan Duxbury
> Attachments: graceful_shutdown-v2.patch, graceful_shutdown.patch
>
>
> The way I'm reading TThreadPoolServer.java, it looks like the stop() method's
> intent is to let the server shut down gracefully. However, because of the way
> that the WorkerProcess work loop is structured, if the clients are
> consistently making requests, the requests will keep getting served until the
> ThreadPoolExecutor's shutdown timeout expires, at which point the client
> threads will be forcibly aborted. This is because the innermost while loop
> around processor.process does not check the server's shutdown_ flag.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.