Google is committed to advancing racial equity for Black communities. See how.

nl::Weave::System::Mutex

#include <src/system/SystemMutex.h>

This class represents a simple mutual exclusion lock used on platforms with preemptively scheduled multi-threaded
programming environments, for example, POSIX threads and FreeRTOS.

Summary

The lock is non-recursive, and may not be used in a hardware interrupt context. The constructor and destructor are defined as null functions to facilitate using objects with static storage duration and uninitialized memory. Use Init method to initialize. The copy/move operators are not provided.

Constructors and Destructors

Mutex(void)
~Mutex(void)

Public functions

Lock(void)
void
Acquire the mutual exclusion lock, blocking the current thread indefinitely if necessary.
Unlock(void)
void
Release the mutual exclusion lock (can block on some systems until scheduler completes).

Public static functions

Init(Mutex & aMutex)
Error

Public functions

Lock

void Lock(
  void
)

Acquire the mutual exclusion lock, blocking the current thread indefinitely if necessary.

Mutex

 Mutex(
  void
)

Unlock

void Unlock(
  void
)

Release the mutual exclusion lock (can block on some systems until scheduler completes).

~Mutex

 ~Mutex(
  void
)

Public static functions

Init

Error Init(
  Mutex & aMutex
)