[ https://issues.apache.org/jira/browse/HDFS-9326?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
James Clampffer resolved HDFS-9326. ----------------------------------- Resolution: Won't Fix Assignee: James Clampffer Fix Version/s: HDFS-8707 Closing this bug without a fix. It's not required and there doesn't seem to be a good solution that works on compilers more than a year or so old. > Create a generic function to synchronize async functions and methods. > ---------------------------------------------------------------------- > > Key: HDFS-9326 > URL: https://issues.apache.org/jira/browse/HDFS-9326 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: hdfs-client > Reporter: James Clampffer > Assignee: James Clampffer > Fix For: HDFS-8707 > > > The majority of the functionality in libhdfs++ is asynchronous, but some > applications need synchronous operations. At the time of filing this only > happens in 3 places in the C API, however that number is going to grow a lot > once the C and high level C++ APIs expose all of the namenode functions. > This synchronization is typically implemented like this: > auto promise = std::make_shared<std::promise<T>>() > std::future<T> = future(promise->get_future()); > auto async_callback = [promise] () {promise->set_value(val);}; > SomeClass::AsyncMethod(async_callback); > auto result = future.get() > Ideally this could all be pushed into a templated function so that the > promise and future don't need to be defined at the call site. This would > probably take the form of doing a std::bind to get all the arguments in place > at the call site and then passing that to the synchronize function. > This appears to require some template magic that isn't always well supported; > see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51979. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org