[ 
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.

Reply via email to