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