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

ASF GitHub Bot commented on GEODE-8847:
---------------------------------------

albertogpz opened a new pull request #726:
URL: https://github.com/apache/geode-native/pull/726


   …ynchronous
   
   When creating a TCP connection and name resolution is needed, the
   synchronous version of the boost::asio::ip::tcp::resolver class
   is used instead of the asynchronous one.
   
   The reason is that the asynchronous one does not offer any advantage
   over the synchronous one because even if a timeout is set when
   using the async one it is later required by the io_service to wait for the
   thread launched by the asynchronous call to finish.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


> Use boost::asio::ip::tcp::resolver::resolve method instead of the 
> asynchronous one
> ----------------------------------------------------------------------------------
>
>                 Key: GEODE-8847
>                 URL: https://issues.apache.org/jira/browse/GEODE-8847
>             Project: Geode
>          Issue Type: Improvement
>          Components: native client
>            Reporter: Alberto Gomez
>            Assignee: Alberto Gomez
>            Priority: Major
>
> The async_resolve method of the boost::asio::ip::tcp::resolver class allows 
> to perform asynchronous calls for name resolution which would, in theory, 
> permit to add a timeout to the name resolution, useful when DNS calls take 
> long.
> In practice, it has been observed that this call creates a thread internally 
> and even if a timeout is set in the io_context run method and the call exits 
> at timeout, subsequent calls to run or the destruction of the io_context will 
> wait for the thread created by the async_resolve method to finish which 
> provokes that calls to the resolver can take longer than the timeout set.
> As a consequence, it is proposed to use the synchronous version of the method 
> (resolve) which makes the code simpler and does not lead to interpret that a 
> timeout out can be set to the name resolution.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to