diff --git a/libraries/AP_HAL_Linux/Scheduler.cpp b/libraries/AP_HAL_Linux/Scheduler.cpp index 90ce75861e..f242745882 100644 --- a/libraries/AP_HAL_Linux/Scheduler.cpp +++ b/libraries/AP_HAL_Linux/Scheduler.cpp @@ -419,6 +419,11 @@ bool Scheduler::in_timerprocess() return _in_timer_proc; } +bool Scheduler::in_main_thread() const +{ + return pthread_equal(pthread_self(), _main_ctx); +} + void Scheduler::_wait_all_threads() { int r = pthread_barrier_wait(&_initialized_barrier); diff --git a/libraries/AP_HAL_Linux/Scheduler.h b/libraries/AP_HAL_Linux/Scheduler.h index bb991a8aa8..4085743bc9 100644 --- a/libraries/AP_HAL_Linux/Scheduler.h +++ b/libraries/AP_HAL_Linux/Scheduler.h @@ -37,6 +37,7 @@ public: void resume_timer_procs(); bool in_timerprocess(); + bool in_main_thread() const override; void register_timer_failsafe(AP_HAL::Proc, uint32_t period_us);