----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/59858/#review177103 -----------------------------------------------------------
Fix it, then Ship it! 3rdparty/libprocess/include/process/metrics/gauge.hpp Line 19 (original), 19 (patched) <https://reviews.apache.org/r/59858/#comment250650> This is unused now, but we need to `#include <functional>` above. 3rdparty/libprocess/include/process/metrics/gauge.hpp Line 34 (original), 35-39 (patched) <https://reviews.apache.org/r/59858/#comment250655> I believe the gist of this change is to recognize that a `Gauge` has no dependency on the production of its value to be deferred; instead this decision should be should be left to the creator of the `Gauge`. For most existing `Gauge`s in the Mesos code base we not only depend on some process to carry out calculcation of values, but also introduce a life-time dependency made safe by using `Deferred`. This is inherent to the functions passed in here (they could e.g., be implicitly converted from a `_Deferred`. Given that, I am not sure we need to explain `Deferred` here. I would instead update the existing comment, e.g., `s/deferred object/producer function/` or similar. 3rdparty/libprocess/src/tests/metrics_tests.cpp Lines 216 (patched) <https://reviews.apache.org/r/59858/#comment250651> Is there any value in making an explicit `function` here instead of relying on the implicit conversion from a lambda? Gauge gaugeConst("test/gauge_const", []() { return 99.; }); - Benjamin Bannier On June 6, 2017, 11:16 p.m., James Peach wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/59858/ > ----------------------------------------------------------- > > (Updated June 6, 2017, 11:16 p.m.) > > > Review request for mesos, Benjamin Bannier and Benjamin Mahler. > > > Repository: mesos > > > Description > ------- > > A `Deferred` function object is always defined to be a > `std::function`, so when we are constructing a `Gauge` metrics > is it not strictly required for the callback to be a `Deferred` > object. In cases where the value is a constant or can be calculated > by reading constant data, a metrics producer can emit a `Gauge` > without the taking the additional dispatch cost. > > > Diffs > ----- > > 3rdparty/libprocess/include/process/metrics/gauge.hpp > c5bbeaf5d53c60f3636d1778db47cdb6cdda34e8 > 3rdparty/libprocess/src/tests/metrics_tests.cpp > c13520d23ca17144f553fb4588fb8a747ea46e72 > > > Diff: https://reviews.apache.org/r/59858/diff/2/ > > > Testing > ------- > > make check (Fedora 25) > > > Thanks, > > James Peach > >
