From b978f0e320780046676c0ac7ac79cb3639feb510 Mon Sep 17 00:00:00 2001
From: "Praetorius, Simon" <simon.praetorius@tu-dresden.de>
Date: Fri, 3 May 2019 18:12:22 +0200
Subject: [PATCH] allow parallel execution of runner tasks

---
 .gitlab-ci.yml                      | 44 ++++++++++++++++++-----------
 src/amdis/functions/Interpolate.hpp |  8 +++---
 2 files changed, 31 insertions(+), 21 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 258df2ac..cee60873 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,31 +5,41 @@ before_script:
 
 variables:
   GIT_SUBMODULE_STRATEGY: recursive
+  DUNECI_PARALLEL: 4
 
-debian:10 gcc-8-17:
+dune-2.6 debian-10 gcc-8-17:
   image: registry.dune-project.org/docker/ci/dune:2.6-debian-10-gcc-8-17
   script:
-  - dunecontrol --current all
-  - dunecontrol --current make build_tests
-  - dunecontrol --current make test
-  - dunecontrol --current make examples
-
-debian:10 clang-6-libcpp-17:
-  image: registry.dune-project.org/docker/ci/dune:2.6-debian-10-clang-6-libcpp-17
-  script:
   - duneci-standard-test
-  - dunecontrol --current make examples
+  - dunecontrol --current make -j4 examples
 
-debian:9 gcc-6-14:
+dune-2.6 debian-9 gcc-6-14:
   image: registry.dune-project.org/docker/ci/dune:2.6-debian-9-gcc-6-14
   script:
-  - dunecontrol --current all
-  - dunecontrol --current make build_tests
-  - dunecontrol --current make test
-  - dunecontrol --current make examples
+  - duneci-standard-test
+  - dunecontrol --current make -j4 examples
 
-ubuntu:18.04 clang-6-17:
+dune-2.6 ubuntu-18.04 clang-6-17:
   image: registry.dune-project.org/docker/ci/dune:2.6-ubuntu-18.04-clang-6-17
   script:
   - duneci-standard-test
-  - dunecontrol --current make examples
+  - dunecontrol --current make -j4 examples
+
+
+dune-git debian-10 gcc-8-17:
+  image: registry.dune-project.org/docker/ci/dune:git-debian-10-gcc-8-17
+  script:
+  - duneci-standard-test
+  - dunecontrol --current make -j4 examples
+
+dune-git debian-9 gcc-6-14:
+  image: registry.dune-project.org/docker/ci/dune:git-debian-9-gcc-6-14
+  script:
+  - duneci-standard-test
+  - dunecontrol --current make -j4 examples
+
+dune-git ubuntu-18.04 clang-6-17:
+  image: registry.dune-project.org/docker/ci/dune:git-ubuntu-18.04-clang-6-17
+  script:
+  - duneci-standard-test
+  - dunecontrol --current make -j4 examples
diff --git a/src/amdis/functions/Interpolate.hpp b/src/amdis/functions/Interpolate.hpp
index 5845b52f..bdbea99e 100644
--- a/src/amdis/functions/Interpolate.hpp
+++ b/src/amdis/functions/Interpolate.hpp
@@ -207,16 +207,16 @@ namespace Impl {
   decltype(auto) toVectorBackend(B const& basis, Vec& vec)
   {
     return Dune::Hybrid::ifElse(Dune::models<Dune::Functions::Concept::VectorBackend<B>, Vec>(),
-    [&](auto id) -> decltype(auto) { return vec; },
-    [&](auto id) -> decltype(auto) { return Dune::Functions::istlVectorBackend(vec); });
+    [&](auto id) -> decltype(auto) { return id(vec); },
+    [&](auto id) -> decltype(auto) { return Dune::Functions::istlVectorBackend(id(vec)); });
   }
 
   template <class B, class Vec>
   decltype(auto) toConstVectorBackend(B const& basis, Vec const& vec)
   {
     return Dune::Hybrid::ifElse(Dune::models<Dune::Functions::Concept::ConstVectorBackend<B>, Vec>(),
-    [&](auto id) -> decltype(auto) { return vec; },
-    [&](auto id) -> decltype(auto) { return Dune::Functions::istlVectorBackend(vec); });
+    [&](auto id) -> decltype(auto) { return id(vec); },
+    [&](auto id) -> decltype(auto) { return Dune::Functions::istlVectorBackend(id(vec)); });
   }
 
 } // namespace Impl
-- 
GitLab