[ 
https://issues.apache.org/jira/browse/THRIFT-3083?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14520575#comment-14520575
 ] 

ASF GitHub Bot commented on THRIFT-3083:
----------------------------------------

Github user henrique commented on the pull request:

    https://github.com/apache/thrift/pull/466#issuecomment-97618902
  
    Hi James,
    As you do this on your own fork I thought you'd have the access to restart 
the Travis build manually, without the need of closing and opening the PR's. 
Have you set your service hook on your fork settings?
    i.e. https://travis-ci.org/jeking3/thrift
    
    - Henrique


> C++ Consolidate server processing loops in TSimpleServer, TThreadedServer, 
> TThreadPoolServer
> --------------------------------------------------------------------------------------------
>
>                 Key: THRIFT-3083
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3083
>             Project: Thrift
>          Issue Type: Improvement
>          Components: C++ - Library
>    Affects Versions: 0.8, 0.9, 0.9.1, 0.9.2
>            Reporter: James E. King, III
>         Attachments: THRIFT-3083-server-files.tar, THRIFT-3083.patch
>
>
> Currently the simple and threaded servers all share a very similar serve() 
> workflow.  This improvement story is to consolidate them and extract out the 
> specific differences to limit code duplication.
> 1. Add TServerFramework that implements serve() and stop() for TServer, but 
> is abstract.
> 2. Add virtual methods onClientConnected, onClientDisconnected to 
> TServerFramework and require subclasses to implement them.
> 3. TSimpleServer onClientConnected calls TConnectedClient().run() in the 
> serve() thread, thus blocking the server thread until the client disconnects.
> 4. TThreadedServer::serve() calls TServerFramework::serve() and then waits 
> for the notification that all clients are gone.  ::onClientConnected adds a 
> TConnectedClient to the task set and starts a thread for it.  
> ::onClientDisconnected removes the client from the task set.
> 5. TThreadPoolServer would have similar changes.
> The resulting classes will be much smaller, and the specific differences 
> between the servers will be more obvious.  Further, the server processing 
> loop which is common to all three will be in one place.  This improves the 
> predictability of thrift and helps improve maintainability.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to