Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-rtos by
Diff: rtos/Semaphore.cpp
- Revision:
- 6:350b53afb889
- Child:
- 8:88a1a9c26ae3
diff -r 9654a71f5a90 -r 350b53afb889 rtos/Semaphore.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rtos/Semaphore.cpp Fri Nov 23 09:57:31 2012 +0000 @@ -0,0 +1,28 @@ +#include "Semaphore.h" + +#include <string.h> +#include "error.h" + +namespace rtos { + +Semaphore::Semaphore(int32_t count) { +#ifdef CMSIS_OS_RTX + memset(_semaphore_data, 0, sizeof(_semaphore_data)); + _osSemaphoreDef.semaphore = _semaphore_data; +#endif + _osSemaphoreId = osSemaphoreCreate(&_osSemaphoreDef, count); +} + +int32_t Semaphore::wait(uint32_t millisec) { + return osSemaphoreWait(_osSemaphoreId, millisec); +} + +osStatus Semaphore::release(void) { + return osSemaphoreRelease(_osSemaphoreId); +} + +Semaphore::~Semaphore() { + osSemaphoreDelete(_osSemaphoreId); +} + +}