所有権・優先度順ウェイクアップ・RAII 対応のミューテックス (排他ロック)
More...
#include <sync.hpp>
所有権・優先度順ウェイクアップ・RAII 対応のミューテックス (排他ロック)
共有リソースやペリフェラルへの同時アクセスを防止します。 ロックしたタスク本人以外の誤った unlock() は安全に無視されます。 C++ の BasicLockable を満たしており、std::lock_guard や tk::LockGuard が利用可能です。
{
}
ミューテックスのロックをスコープ単位で安全に管理する RAII クラス (std::lock_guard 相当)
Definition sync.hpp:211
所有権・優先度順ウェイクアップ・RAII 対応のミューテックス (排他ロック)
Definition sync.hpp:123
void lock()
ミューテックスをロックします (空くまでブロック待機)
Definition sync.hpp:132
◆ Mutex()
◆ is_locked()
| bool tk::Mutex::is_locked |
( |
| ) |
const |
|
inline |
◆ lock()
ミューテックスをロックします (空くまでブロック待機)
他のタスクが保持している場合は、解放されるまで自タスクを State::Blocked にして休止します。
◆ try_lock()
| bool tk::Mutex::try_lock |
( |
| ) |
|
|
inline |
ミューテックスのロックを試みます (ノンブロッキング)
- Returns
- true ロック獲得成功
-
false 他のタスクが保持しているため獲得失敗 (ブロックせず即座に復帰)
◆ unlock()
| void tk::Mutex::unlock |
( |
| ) |
|
|
inline |
ミューテックスのロックを解除します
ロックを保持しているタスク本人だけが解除できます。 待機中のタスクが存在する場合、最も優先度が高いタスクを 1 つ起床させます。
The documentation for this class was generated from the following file:
- C:/Users/yoneda/Documents/Pico_Projects/tinykernel/tinykernel/include/tinykernel/sync.hpp