1
用于微控制器的RTOS的消息队列
我目前正在为微控制器编写RTOS。整个过程都是用C ++ 11编写的-如果有人感兴趣,则指向存储库的链接在底部。 当前,我正在编写一个类,该类是一个简单的数据队列,用于在线程之间(或在中断处理程序和线程之间或中断处理程序和其他中断处理程序之间)传递对象。通常,我尝试遵循在其他项目上找到的一些常见API,但是我没有找到具有emplace()功能并支持超时的并发队列的任何示例。 我一般的“问题”是我无法在这两个接口之间做出决定: (std::chrono::duration<Rep, Period>是模板化类型,为清晰起见,我省略了模板样板) 第一版: template<typename T> class FifoQueue { public: ... template<typename... Args> int tryEmplaceFor(std::chrono::duration<Rep, Period>, Args&&... args); int tryPopFor(T&, std::chrono::duration<Rep, Period>); int tryPushFor(const T&, std::chrono::duration<Rep, Period>); int tryPushFor(T&&, std::chrono::duration<Rep, Period>); ... } 第二版: template<typename T> class FifoQueue { public: ... template<typename... Args> int tryEmplaceFor(std::chrono::duration<Rep, Period>, …