[ https://issues.apache.org/jira/browse/KUDU-2771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16821360#comment-16821360 ]
Alexey Serbin commented on KUDU-2771: ------------------------------------- Yep, using {{Promise}} can be useful, given the question of ownership of that {{Promise}} is solved. 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)