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

Alexey Serbin edited comment on KUDU-2771 at 4/18/19 6:15 PM:
--------------------------------------------------------------

Yep, using {{Promise}} provides nice abstraction and isuseful to make effective 
use of sync primitives, given the question of ownership of that {{Promise}} is 
solved (probably, you meant shared_pointer to Promise?).  The key point here is 
to refactor the code at least in those two places, introducing a helper library 
function.


was (Author: aserbin):
Yep, using {{Promise}} can be useful, given the question of ownership of that 
{{Promise}} is solved (probably, you meant shared_pointer to Promise?).  The 
key point here is to refactor the code at least in those two places, 
introducing a helper library function.

> Re-factor the common pattern of queuing requests from multiple threads into a 
> utility 
> --------------------------------------------------------------------------------------
>
>                 Key: KUDU-2771
>                 URL: https://issues.apache.org/jira/browse/KUDU-2771
>             Project: Kudu
>          Issue Type: Improvement
>          Components: util
>    Affects Versions: 1.10.0
>            Reporter: Alexey Serbin
>            Priority: Major
>              Labels: newbie
>
> Currently, in {{KuduClient::Data::ConnectToClusterAsync}} and in 
> {{SentryPrivilegesFetcher::GetSentryPrivileges}} there is a pattern when 
> concurrent requests with the same parameters are queued and multiple threads 
> are waiting for something to be executed just once.  When the result is ready 
> to be picked up (or a failure happened), the threads are awoken and fed with 
> appropriate information.
> It would be nice to factor out, unify, and generalize that code into a 
> library function (or a class with appropriate methods) somewhere under 
> {{src/kudu/util}}.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to