diff --git a/third_party/marl/.gitignore b/third_party/marl/.gitignore
index c99ccc1..0c63853 100644
--- a/third_party/marl/.gitignore
+++ b/third_party/marl/.gitignore
@@ -1,2 +1,3 @@
 /.vscode/
-/build/
\ No newline at end of file
+/build/
+bazel-*
diff --git a/third_party/marl/BUILD.bazel b/third_party/marl/BUILD.bazel
new file mode 100644
index 0000000..bcb5643
--- /dev/null
+++ b/third_party/marl/BUILD.bazel
@@ -0,0 +1,54 @@
+# Copyright 2019 The Marl Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cc_library(
+    name = "marl",
+    srcs = glob(
+        [
+            "src/**/*.cpp",
+            "src/**/*.c",
+            "src/**/*.h",
+        ],
+        exclude = glob([
+            "src/**/*_test.cpp",
+        ]),
+    ) + select({
+        "@bazel_tools//src/conditions:windows": [],
+        "//conditions:default": glob(["src/**/*.S"]),
+    }),
+    hdrs = glob([
+        "include/marl/**/*.h",
+    ]),
+    includes = [
+        "include",
+    ],
+    linkopts = select({
+        "@bazel_tools//src/conditions:linux_x86_64": ["-pthread"],
+        "//conditions:default": [],
+    }),
+    visibility = [
+        "//visibility:public",
+    ],
+)
+
+cc_test(
+    name = "tests",
+    srcs = glob([
+        "src/**/*_test.cpp",
+    ]),
+    deps = [
+        "//:marl",
+        "@googletest//:gtest",
+    ],
+)
diff --git a/third_party/marl/WORKSPACE b/third_party/marl/WORKSPACE
new file mode 100644
index 0000000..60425d6
--- /dev/null
+++ b/third_party/marl/WORKSPACE
@@ -0,0 +1,18 @@
+# Copyright 2019 The Marl Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+local_repository(
+  name = "googletest",
+  path = "./third_party/googletest",
+)
diff --git a/third_party/marl/examples/BUILD.bazel b/third_party/marl/examples/BUILD.bazel
new file mode 100644
index 0000000..5d68d73
--- /dev/null
+++ b/third_party/marl/examples/BUILD.bazel
@@ -0,0 +1,33 @@
+# Copyright 2019 The Marl Authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cc_binary(
+  name = "fractal",
+  srcs = [
+    "fractal.cpp",
+  ],
+  deps = [
+    "//:marl",
+  ],
+)
+
+cc_binary(
+  name = "primes",
+  srcs = [
+    "primes.cpp",
+  ],
+  deps = [
+    "//:marl",
+  ],
+)
diff --git a/third_party/marl/kokoro/linux/presubmit.cfg b/third_party/marl/kokoro/linux/bazel/presubmit.cfg
similarity index 73%
rename from third_party/marl/kokoro/linux/presubmit.cfg
rename to third_party/marl/kokoro/linux/bazel/presubmit.cfg
index 131a77f..6568287 100644
--- a/third_party/marl/kokoro/linux/presubmit.cfg
+++ b/third_party/marl/kokoro/linux/bazel/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/linux/presubmit.sh"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "bazel"
+}
diff --git a/third_party/marl/kokoro/linux/presubmit.cfg b/third_party/marl/kokoro/linux/cmake/presubmit.cfg
similarity index 73%
copy from third_party/marl/kokoro/linux/presubmit.cfg
copy to third_party/marl/kokoro/linux/cmake/presubmit.cfg
index 131a77f..f377ee0 100644
--- a/third_party/marl/kokoro/linux/presubmit.cfg
+++ b/third_party/marl/kokoro/linux/cmake/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/linux/presubmit.sh"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "cmake"
+}
diff --git a/third_party/marl/kokoro/linux/presubmit.sh b/third_party/marl/kokoro/linux/presubmit.sh
index ae166f4..60bddbe 100755
--- a/third_party/marl/kokoro/linux/presubmit.sh
+++ b/third_party/marl/kokoro/linux/presubmit.sh
@@ -3,21 +3,39 @@
 set -e # Fail on any error.
 set -x # Display commands being run.
 
+BUILD_ROOT=$PWD
+
 cd github/marl
 
 git submodule update --init
 
-mkdir build
-cd build
+if [ "$BUILD_SYSTEM" == "cmake" ]; then
+    mkdir build
+    cd build
 
-build_and_run() {
-    cmake .. -DMARL_BUILD_EXAMPLES=1 -DMARL_BUILD_TESTS=1 -DMARL_WARNINGS_AS_ERRORS=1 $1
-    make --jobs=$(nproc)
+    build_and_run() {
+        cmake .. -DMARL_BUILD_EXAMPLES=1 -DMARL_BUILD_TESTS=1 -DMARL_WARNINGS_AS_ERRORS=1 $1
+        make --jobs=$(nproc)
 
-    ./marl-unittests
-    ./fractal
-}
+        ./marl-unittests
+        ./fractal
+        ./primes > /dev/null
+    }
 
-build_and_run ""
-build_and_run "-DMARL_ASAN=1"
-build_and_run "-DMARL_MSAN=1"
\ No newline at end of file
+    build_and_run ""
+    build_and_run "-DMARL_ASAN=1"
+    build_and_run "-DMARL_MSAN=1"
+elif [ "$BUILD_SYSTEM" == "bazel" ]; then
+    # Get bazel
+    curl -L -k -O -s https://github.com/bazelbuild/bazel/releases/download/0.29.1/bazel-0.29.1-installer-linux-x86_64.sh
+    mkdir $BUILD_ROOT/bazel
+    bash bazel-0.29.1-installer-linux-x86_64.sh --prefix=$BUILD_ROOT/bazel
+    rm bazel-0.29.1-installer-linux-x86_64.sh
+    # Build and run
+    $BUILD_ROOT/bazel/bin/bazel test //:tests
+    $BUILD_ROOT/bazel/bin/bazel run //examples:fractal
+    $BUILD_ROOT/bazel/bin/bazel run //examples:primes > /dev/null
+else
+    echo "Unknown build system: $BUILD_SYSTEM"
+    exit 1
+fi
\ No newline at end of file
diff --git a/third_party/marl/kokoro/macos/presubmit.cfg b/third_party/marl/kokoro/macos/bazel/presubmit.cfg
similarity index 73%
rename from third_party/marl/kokoro/macos/presubmit.cfg
rename to third_party/marl/kokoro/macos/bazel/presubmit.cfg
index 009e936..c897fb3 100644
--- a/third_party/marl/kokoro/macos/presubmit.cfg
+++ b/third_party/marl/kokoro/macos/bazel/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/macos/presubmit.sh"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "bazel"
+}
diff --git a/third_party/marl/kokoro/macos/presubmit.cfg b/third_party/marl/kokoro/macos/cmake/presubmit.cfg
similarity index 73%
copy from third_party/marl/kokoro/macos/presubmit.cfg
copy to third_party/marl/kokoro/macos/cmake/presubmit.cfg
index 009e936..aa023a9 100644
--- a/third_party/marl/kokoro/macos/presubmit.cfg
+++ b/third_party/marl/kokoro/macos/cmake/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/macos/presubmit.sh"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "cmake"
+}
diff --git a/third_party/marl/kokoro/macos/presubmit.sh b/third_party/marl/kokoro/macos/presubmit.sh
index 3d1b775..ea97913 100755
--- a/third_party/marl/kokoro/macos/presubmit.sh
+++ b/third_party/marl/kokoro/macos/presubmit.sh
@@ -3,15 +3,34 @@
 set -e # Fail on any error.
 set -x # Display commands being run.
 
+BUILD_ROOT=$PWD
+
 cd github/marl
 
 git submodule update --init
 
-mkdir build
-cd build
-cmake .. -DMARL_BUILD_EXAMPLES=1 -DMARL_BUILD_TESTS=1 -DMARL_WARNINGS_AS_ERRORS=1
-make -j$(sysctl -n hw.logicalcpu)
+if [ "$BUILD_SYSTEM" == "cmake" ]; then
+    mkdir build
+    cd build
 
-./marl-unittests
+    cmake .. -DMARL_BUILD_EXAMPLES=1 -DMARL_BUILD_TESTS=1 -DMARL_WARNINGS_AS_ERRORS=1
+    make -j$(sysctl -n hw.logicalcpu)
 
-./fractal
+    ./marl-unittests
+
+    ./fractal
+    ./primes > /dev/null
+elif [ "$BUILD_SYSTEM" == "bazel" ]; then
+    # Get bazel
+    curl -L -k -O -s https://github.com/bazelbuild/bazel/releases/download/0.29.1/bazel-0.29.1-installer-darwin-x86_64.sh
+    mkdir $BUILD_ROOT/bazel
+    sh bazel-0.29.1-installer-darwin-x86_64.sh --prefix=$BUILD_ROOT/bazel
+    rm bazel-0.29.1-installer-darwin-x86_64.sh
+    # Build and run
+    $BUILD_ROOT/bazel/bin/bazel test //:tests
+    $BUILD_ROOT/bazel/bin/bazel run //examples:fractal
+    $BUILD_ROOT/bazel/bin/bazel run //examples:primes > /dev/null
+else
+    echo "Unknown build system: $BUILD_SYSTEM"
+    exit 1
+fi
\ No newline at end of file
diff --git a/third_party/marl/kokoro/windows/presubmit.cfg b/third_party/marl/kokoro/windows/bazel/presubmit.cfg
similarity index 73%
rename from third_party/marl/kokoro/windows/presubmit.cfg
rename to third_party/marl/kokoro/windows/bazel/presubmit.cfg
index d580a41..ef6acd8 100644
--- a/third_party/marl/kokoro/windows/presubmit.cfg
+++ b/third_party/marl/kokoro/windows/bazel/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/windows/presubmit.bat"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "bazel"
+}
diff --git a/third_party/marl/kokoro/windows/presubmit.cfg b/third_party/marl/kokoro/windows/cmake/presubmit.cfg
similarity index 73%
copy from third_party/marl/kokoro/windows/presubmit.cfg
copy to third_party/marl/kokoro/windows/cmake/presubmit.cfg
index d580a41..72d1734 100644
--- a/third_party/marl/kokoro/windows/presubmit.cfg
+++ b/third_party/marl/kokoro/windows/cmake/presubmit.cfg
@@ -2,3 +2,8 @@
 
 # Location of the continuous bash script in Git.
 build_file: "marl/kokoro/windows/presubmit.bat"
+
+env_vars {
+  key: "BUILD_SYSTEM"
+  value: "cmake"
+}
diff --git a/third_party/marl/kokoro/windows/presubmit.bat b/third_party/marl/kokoro/windows/presubmit.bat
index 504ad8c..9c15406 100644
--- a/third_party/marl/kokoro/windows/presubmit.bat
+++ b/third_party/marl/kokoro/windows/presubmit.bat
@@ -2,30 +2,62 @@
 
 SETLOCAL ENABLEDELAYEDEXPANSION
 
+SET BUILD_ROOT=%cd%
 SET PATH=C:\python36;C:\Program Files\cmake\bin;%PATH%
-set SRC=%cd%\github\marl
+SET SRC=%cd%\github\marl
 
 cd %SRC%
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
 
 git submodule update --init
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
 
 SET MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild"
 SET CONFIG=Release
 
 mkdir %SRC%\build
 cd %SRC%\build
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
 
-cmake .. -G "Visual Studio 15 2017 Win64" -Thost=x64 "-DMARL_BUILD_TESTS=1" "-DMARL_BUILD_EXAMPLES=1" "-DMARL_WARNINGS_AS_ERRORS=1"
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+IF /I "%BUILD_SYSTEM%"=="cmake" (
+    cmake .. -G "Visual Studio 15 2017 Win64" -Thost=x64 "-DMARL_BUILD_TESTS=1" "-DMARL_BUILD_EXAMPLES=1" "-DMARL_WARNINGS_AS_ERRORS=1"
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    %MSBUILD% /p:Configuration=%CONFIG% Marl.sln
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    Release\marl-unittests.exe
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    Release\fractal.exe
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    Release\primes.exe > nul
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+) ELSE IF /I "%BUILD_SYSTEM%"=="bazel" (
+    REM Fix up the MSYS environment.
+    wget -q http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-7.3.0-2-any.pkg.tar.xz
+    wget -q http://repo.msys2.org/mingw/x86_64/mingw-w64-x86_64-gcc-libs-7.3.0-2-any.pkg.tar.xz
+    c:\tools\msys64\usr\bin\bash --login -c "pacman -R --noconfirm catgets libcatgets"
+    c:\tools\msys64\usr\bin\bash --login -c "pacman -Syu --noconfirm"
+    c:\tools\msys64\usr\bin\bash --login -c "pacman -Sy --noconfirm mingw-w64-x86_64-crt-git patch"
+    c:\tools\msys64\usr\bin\bash --login -c "pacman -U --noconfirm mingw-w64-x86_64-gcc*-7.3.0-2-any.pkg.tar.xz"
+    set PATH=C:\tools\msys64\mingw64\bin;c:\tools\msys64\usr\bin;!PATH!
+    set BAZEL_SH=C:\tools\msys64\usr\bin\bash.exe
 
-%MSBUILD% /p:Configuration=%CONFIG% Marl.sln
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+    REM Install Bazel
+    SET BAZEL_DIR=!BUILD_ROOT!\bazel
+    mkdir !BAZEL_DIR!
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    wget -q https://github.com/bazelbuild/bazel/releases/download/0.29.1/bazel-0.29.1-windows-x86_64.zip
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    unzip -q bazel-0.29.1-windows-x86_64.zip -d !BAZEL_DIR!
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
 
-Release\marl-unittests.exe
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
-
-Release\fractal.exe
-if !ERRORLEVEL! neq 0 exit /b !ERRORLEVEL!
+    REM Build and run
+    !BAZEL_DIR!\bazel test //:tests --test_output=all
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    !BAZEL_DIR!\bazel run //examples:fractal
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+    !BAZEL_DIR!\bazel run //examples:primes > nul
+    if !ERRORLEVEL! neq 0 exit !ERRORLEVEL!
+) ELSE (
+    echo "Unknown build system: %BUILD_SYSTEM%"
+    exit /b 1
+)
diff --git a/third_party/marl/src/osfiber_asm_aarch64.S b/third_party/marl/src/osfiber_asm_aarch64.S
index 1fa08d9..04db6de 100644
--- a/third_party/marl/src/osfiber_asm_aarch64.S
+++ b/third_party/marl/src/osfiber_asm_aarch64.S
@@ -44,6 +44,7 @@
     str x26, [x0, #MARL_REG_r26]
     str x27, [x0, #MARL_REG_r27]
     str x28, [x0, #MARL_REG_r28]
+    str x29, [x0, #MARL_REG_r29]
 
     str d8,  [x0, #MARL_REG_v8]
     str d9,  [x0, #MARL_REG_v9]
@@ -78,6 +79,7 @@
     ldr x26, [x7, #MARL_REG_r26]
     ldr x27, [x7, #MARL_REG_r27]
     ldr x28, [x7, #MARL_REG_r28]
+    ldr x29, [x7, #MARL_REG_r29]
 
     ldr d8,  [x7, #MARL_REG_v8]
     ldr d9,  [x7, #MARL_REG_v9]
diff --git a/third_party/marl/src/osfiber_asm_aarch64.h b/third_party/marl/src/osfiber_asm_aarch64.h
index ccd19ef..c50d742 100644
--- a/third_party/marl/src/osfiber_asm_aarch64.h
+++ b/third_party/marl/src/osfiber_asm_aarch64.h
@@ -27,16 +27,17 @@
 #define MARL_REG_r26 0x60
 #define MARL_REG_r27 0x68
 #define MARL_REG_r28 0x70
-#define MARL_REG_v8 0x78
-#define MARL_REG_v9 0x80
-#define MARL_REG_v10 0x88
-#define MARL_REG_v11 0x90
-#define MARL_REG_v12 0x98
-#define MARL_REG_v13 0xa0
-#define MARL_REG_v14 0xa8
-#define MARL_REG_v15 0xb0
-#define MARL_REG_SP 0xb8
-#define MARL_REG_LR 0xc0
+#define MARL_REG_r29 0x78
+#define MARL_REG_v8 0x80
+#define MARL_REG_v9 0x88
+#define MARL_REG_v10 0x90
+#define MARL_REG_v11 0x98
+#define MARL_REG_v12 0xa0
+#define MARL_REG_v13 0xa8
+#define MARL_REG_v14 0xb0
+#define MARL_REG_v15 0xb8
+#define MARL_REG_SP 0xc0
+#define MARL_REG_LR 0xc8
 
 #if defined(__APPLE__)
 #define MARL_ASM_SYMBOL(x) _##x
@@ -71,6 +72,7 @@
   uintptr_t r26;
   uintptr_t r27;
   uintptr_t r28;
+  uintptr_t r29;
 
   uintptr_t v8;
   uintptr_t v9;
@@ -117,6 +119,8 @@
               "Bad register offset");
 static_assert(offsetof(marl_fiber_context, r28) == MARL_REG_r28,
               "Bad register offset");
+static_assert(offsetof(marl_fiber_context, r29) == MARL_REG_r29,
+              "Bad register offset");
 static_assert(offsetof(marl_fiber_context, v8) == MARL_REG_v8,
               "Bad register offset");
 static_assert(offsetof(marl_fiber_context, v9) == MARL_REG_v9,
diff --git a/third_party/marl/src/scheduler.cpp b/third_party/marl/src/scheduler.cpp
index 09771ac..1a08d8f 100644
--- a/third_party/marl/src/scheduler.cpp
+++ b/third_party/marl/src/scheduler.cpp
@@ -408,7 +408,7 @@
     std::unique_lock<std::mutex>& lock) {
   MARL_ASSERT(work.num == work.fibers.size() + work.tasks.size(),
               "work.num out of sync");
-  if (work.num == 0) {
+  if (work.num == 0 && mode == Mode::MultiThreaded) {
     scheduler->onBeginSpinning(id);
     lock.unlock();
     spinForWork();
diff --git a/third_party/marl/src/scheduler_test.cpp b/third_party/marl/src/scheduler_test.cpp
index c0c5055..1f0562a 100644
--- a/third_party/marl/src/scheduler_test.cpp
+++ b/third_party/marl/src/scheduler_test.cpp
@@ -14,8 +14,11 @@
 
 #include "marl_test.h"
 
+#include "marl/defer.h"
 #include "marl/waitgroup.h"
 
+#include <unordered_set>
+
 TEST(WithoutBoundScheduler, SchedulerConstructAndDestruct) {
   auto scheduler = new marl::Scheduler();
   delete scheduler;
@@ -102,4 +105,27 @@
   for (auto& thread : threads) {
     thread.join();
   }
+}
+
+TEST(WithoutBoundScheduler, TasksOnlyScheduledOnWorkerThreads) {
+  auto scheduler = std::unique_ptr<marl::Scheduler>(new marl::Scheduler());
+  scheduler->bind();
+  scheduler->setWorkerThreadCount(8);
+  std::mutex mutex;
+  std::unordered_set<std::thread::id> threads;
+  marl::WaitGroup wg;
+  for (int i = 0; i < 10000; i++) {
+    wg.add(1);
+    marl::schedule([&mutex, &threads, wg] {
+      defer(wg.done());
+      std::unique_lock<std::mutex> lock(mutex);
+      threads.emplace(std::this_thread::get_id());
+    });
+  }
+  wg.wait();
+
+  ASSERT_EQ(threads.size(), 8U);
+  ASSERT_EQ(threads.count(std::this_thread::get_id()), 0U);
+
+  scheduler->unbind();
 }
\ No newline at end of file
