non blocking queue
Fork of mbed-rtos by
rtos/Mutex.cpp
- Committer:
- emilmont
- Date:
- 2012-11-23
- Revision:
- 6:350b53afb889
- Child:
- 8:88a1a9c26ae3
File content as of revision 6:350b53afb889:
#include "Mutex.h" #include <string.h> #include "error.h" namespace rtos { Mutex::Mutex() { #ifdef CMSIS_OS_RTX memset(_mutex_data, 0, sizeof(_mutex_data)); _osMutexDef.mutex = _mutex_data; #endif _osMutexId = osMutexCreate(&_osMutexDef); if (_osMutexId == NULL) { error("Error initializing the mutex object\n"); } } osStatus Mutex::lock(uint32_t millisec) { return osMutexWait(_osMutexId, millisec); } bool Mutex::trylock() { return (osMutexWait(_osMutexId, 0) == osOK); } osStatus Mutex::unlock() { return osMutexRelease(_osMutexId); } Mutex::~Mutex() { osMutexDelete(_osMutexId); } }