mesos-reviews mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jie Yu <yujie....@gmail.com>
Subject Re: Review Request 61987: Added an undiscardable() helper that blocks discards from propagating.
Date Wed, 30 Aug 2017 19:36:10 GMT


> On Aug. 30, 2017, 7:35 p.m., Jie Yu wrote:
> > I got this compile error on my box:
> > ```[jie@core-dev build]$ gcc -v
> > Using built-in specs.
> > COLLECT_GCC=/usr/bin/gcc
> > COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
> > Target: x86_64-redhat-linux
> > Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info
--with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions
--enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto
--enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install
--with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install
--enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
> > Thread model: posix
> > gcc version 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC) 
> > [jie@core-dev build]$ uname -a
> > Linux core-dev 3.10.0-514.16.1.el7.x86_64 #1 SMP Wed Apr 12 15:04:24 UTC 2017 x86_64
x86_64 x86_64 GNU/Linux
> > 
> > 
> > 
> > In file included from /home/jie/workspace/mesos/3rdparty/libprocess/src/tests/future_tests.cpp:18:0:
> > /home/jie/workspace/mesos/3rdparty/libprocess/include/process/future.hpp: In instantiation
of ‘process::UndiscardableDecorator<F>::UndiscardableDecorator(G&&) [with
G = process::UndiscardableDecorator<FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43>&;
F = FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43]’:
> > /usr/include/c++/4.8.2/functional:1910:34:   required from ‘static void std::_Function_base::_Base_manager<_Functor>::_M_clone(std::_Any_data&,
const std::_Any_data&, std::false_type) [with _Functor = process::UndiscardableDecorator<FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43>;
std::false_type = std::integral_constant<bool, false>]’
> > /usr/include/c++/4.8.2/functional:1946:51:   required from ‘static bool std::_Function_base::_Base_manager<_Functor>::_M_manager(std::_Any_data&,
const std::_Any_data&, std::_Manager_operation) [with _Functor = process::UndiscardableDecorator<FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43>]’
> > /usr/include/c++/4.8.2/functional:2460:19:   required from ‘std::function<_Res(_ArgTypes
...)>::function(_Functor) [with _Functor = process::UndiscardableDecorator<FutureTest_Und
> > iscardableLambda_Test::TestBody()::__lambda43>; <template-parameter-2-2>
= void; _Res = process::Future<int>; _ArgTypes = {const int&}]’
> > /home/jie/workspace/mesos/3rdparty/libprocess/include/process/future.hpp:385:16:
  required from ‘process::Future<X> process::Future<T>::then(F&&, process::Future<T>::Prefer)
con
> > st [with F = process::UndiscardableDecorator<FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43>;
X = int; T = int]’
> > /home/jie/workspace/mesos/3rdparty/libprocess/include/process/future.hpp:417:45:
  required from ‘decltype (this->.then(forward<F>(f), process::Future<T>::Prefer()))
process::Fut
> > ure<T>::then(F&&) const [with F = process::UndiscardableDecorator<FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43>;
T = int; decltype (this->.then(forward<F>(f), proc
> > ess::Future<T>::Prefer())) = <type error>]’
> > /home/jie/workspace/mesos/3rdparty/libprocess/src/tests/future_tests.cpp:578:7:
  required from here
> > /home/jie/workspace/mesos/3rdparty/libprocess/include/process/future.hpp:1670:55:
error: no matching function for call to ‘FutureTest_UndiscardableLambda_Test::TestBody()::__lamb
> > da43::__lambda43(process::UndiscardableDecorator<FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43>&)’
> >    UndiscardableDecorator(G&& g) : f(std::forward<G>(g)) {}
> >                                                        ^
> > /home/jie/workspace/mesos/3rdparty/libprocess/include/process/future.hpp:1670:55:
note: candidates are:
> > /home/jie/workspace/mesos/3rdparty/libprocess/src/tests/future_tests.cpp:573:27:
note: constexpr FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43::<lambda>(const
Futur
> > eTest_UndiscardableLambda_Test::TestBody()::__lambda43&)
> >      .then(undiscardable([&](int multiplier) {
> >                            ^
> > /home/jie/workspace/mesos/3rdparty/libprocess/src/tests/future_tests.cpp:573:27:
note:   no known conversion for argument 1 from ‘process::UndiscardableDecorator<FutureTest_Undis
> > cardableLambda_Test::TestBody()::__lambda43>’ to ‘const FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43&’
> > /home/jie/workspace/mesos/3rdparty/libprocess/src/tests/future_tests.cpp:573:27:
note: constexpr FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43::<lambda>(FutureTest_
> > UndiscardableLambda_Test::TestBody()::__lambda43&&)
> > /home/jie/workspace/mesos/3rdparty/libprocess/src/tests/future_tests.cpp:573:27:
note:   no known conversion for argument 1 from ‘process::UndiscardableDecorator<FutureTest_Undis
> > cardableLambda_Test::TestBody()::__lambda43>’ to ‘FutureTest_UndiscardableLambda_Test::TestBody()::__lambda43&&’```

@benh, can we split this into two patches. Let's commit the non lambda version first to unblock
MESOS-7926?


- Jie


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61987/#review184185
-----------------------------------------------------------


On Aug. 30, 2017, 6:30 a.m., Benjamin Hindman wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61987/
> -----------------------------------------------------------
> 
> (Updated Aug. 30, 2017, 6:30 a.m.)
> 
> 
> Review request for mesos, Benjamin Mahler, Gilbert Song, and Jie Yu.
> 
> 
> Bugs: MESOS-7926
>     https://issues.apache.org/jira/browse/MESOS-7926
> 
> 
> Repository: mesos
> 
> 
> Description
> -------
> 
> This can be useful in circumstances where you don't want some
> asynchronous operation to be canceled.
> 
> 
> Diffs
> -----
> 
>   3rdparty/libprocess/include/process/future.hpp 2f5f0a20b5a39b04fd684b1cb44b6a33b647bbef

>   3rdparty/libprocess/src/tests/future_tests.cpp 0c8725b9a5e64aaac6e3979e450a11e84f9bd45e

> 
> 
> Diff: https://reviews.apache.org/r/61987/diff/1/
> 
> 
> Testing
> -------
> 
> make check
> 
> 
> Thanks,
> 
> Benjamin Hindman
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message