#pragma once #include #if CONFIG_HAL_BOARD == HAL_BOARD_PX4 #include "AP_HAL_PX4.h" #include class PX4::Semaphore : public AP_HAL::Semaphore { public: Semaphore() { pthread_mutex_init(&_lock, nullptr); } bool give(); bool take(uint32_t timeout_ms); bool take_nonblocking(); private: pthread_mutex_t _lock; }; #endif // CONFIG_HAL_BOARD