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

(Updated Aug. 11, 2016, 8:24 p.m.)


Review request for mesos, Alexander Rukletsov, Joris Van Remoortere, Michael 
Park, and Vinod Kone.


Changes
-------

Rebased.


Bugs: MESOS-3335
    https://issues.apache.org/jira/browse/MESOS-3335


Repository: mesos


Description
-------

While `FlagsBase` internally stores just maps of names and
flags, the functions stored in a `Flag` rely on the original type of
the `Flags` containing them (e.g., we perform dynamic casts to detect
their types).

Since `Option<T>` stores `T` as a value (i.e., it cannot contain
reference types) any interface taking an `Option<T>` cannot rely on
polymorphic behavior of `T`. To make use of polymorphism we should
instead store e.g., a pointer type to avoid slicing.

Here we change `Flags` arguments of `subprocess` to allow preserving
the original type so `Flag` functions can work reliably; we do this by
passing a non-owning pointer to a `Flags` so we do not restrict copying.


Diffs (updated)
-----

  src/docker/docker.cpp e07c4aa723f57db7f8bc31d4af5d32a30ebf98f2 
  src/health-check/health_checker.cpp d43cb0568c120cbcec6a73d232396ccc54cf3e58 
  src/launcher/posix/executor.cpp 43573cacee4e681d4327a7ed7c43b4ee263aa175 
  src/linux/perf.cpp 9455210064779b59ad56637d846fe7584b21340f 
  src/slave/container_loggers/lib_logrotate.cpp 
1fca4864457388b265779fbca72296336f1aa5a9 
  src/slave/containerizer/docker.cpp 12bad2db03bcf755317c654f028b628c5c407a62 
  src/slave/containerizer/mesos/containerizer.cpp 
86a8d8a85b6a33c87798108cb65af85bb9bbbc77 
  src/slave/containerizer/mesos/isolators/docker/volume/driver.cpp 
842f2b5d4037e076cac4fd9c2eeb8f69786cffa7 
  src/slave/containerizer/mesos/isolators/network/cni/cni.cpp 
760d32bf3dc09f3b715b378f5ded41556f15fe41 
  src/slave/containerizer/mesos/isolators/network/port_mapping.cpp 
92f3c07e285ad3b8ef26692aa6475d755188b469 
  src/slave/containerizer/mesos/isolators/posix/disk.cpp 
f97ace9579879b35cb8050c56e968a31bb741c55 
  src/slave/containerizer/mesos/launcher.hpp 
bf435e3a9c150648336a1becf2f075fa183428bd 
  src/slave/containerizer/mesos/launcher.cpp 
9efe8474a2210957ce256fc08cb35694194213c3 
  src/slave/containerizer/mesos/linux_launcher.hpp 
c1852226c74bc611d045be721e284141e59adcd9 
  src/slave/containerizer/mesos/linux_launcher.cpp 
95dee95c5e6e613e526c92d8729ae5583c8b58f1 
  src/tests/containerizer/isolator_tests.cpp 
4f047ae6b2e85e177e8b73d60b9dfca913c832a5 
  src/tests/containerizer/launch_tests.cpp 
ef0c87c96e6a8379d119246a8ad044248522e67e 
  src/tests/containerizer/launcher.hpp 7e5c243efad11d04e70b36876b2ed4db82666d31 
  src/tests/containerizer/mesos_containerizer_tests.cpp 
e3c8daab4fc688150a4f222e05f9b1bd9aee1912 
  src/tests/containerizer/ns_tests.cpp cd668ebb3b9461bee00dc338c288e5df6eb8fe31 
  src/tests/containerizer/port_mapping_tests.cpp 
fd181cae5540de1fdd631367aba5cce249f1b72c 

Diff: https://reviews.apache.org/r/46822/diff/


Testing
-------

Tested on various platforms in internal CI.


Thanks,

Benjamin Bannier

Reply via email to