Add a debug-only guard to check if code is running on the task runner
Change-Id: I10953bf5bb0c7f823c15d3bf3640a03a9c2ff43d
Reviewed-on: https://chromium-review.googlesource.com/c/openscreen/+/1815070
Commit-Queue: Max Yakimakha <yakimakha@chromium.org>
Reviewed-by: Jordan Bayles <jophba@chromium.org>
diff --git a/platform/impl/task_runner.cc b/platform/impl/task_runner.cc
index 0f142ed..3e957a1 100644
--- a/platform/impl/task_runner.cc
+++ b/platform/impl/task_runner.cc
@@ -43,7 +43,12 @@
}
}
+bool TaskRunnerImpl::IsRunningOnTaskRunner() {
+ return task_runner_thread_id_ == std::this_thread::get_id();
+}
+
void TaskRunnerImpl::RunUntilStopped() {
+ task_runner_thread_id_ = std::this_thread::get_id();
const bool was_running = is_running_.exchange(true);
OSP_CHECK(!was_running);
@@ -115,6 +120,7 @@
ScheduleDelayedTasks();
RunCurrentTasksBlocking();
}
+ task_runner_thread_id_ = std::thread::id();
}
void TaskRunnerImpl::ScheduleDelayedTasks() {