Ethernetwebsoc

Dependencies:   C12832_lcd LM75B WebSocketClient mbed-rtos mbed Socket lwip-eth lwip-sys lwip

mbed-rtos/rtos/Semaphore.cpp

Committer:
GordonSin
Date:
2013-05-31
Revision:
0:0ed2a7c7190c

File content as of revision 0:0ed2a7c7190c:

#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);
}

}