Ethernetwebsoc
Dependencies: C12832_lcd LM75B WebSocketClient mbed-rtos mbed Socket lwip-eth lwip-sys lwip
mbed-rtos/rtos/Thread.cpp
- Committer:
- GordonSin
- Date:
- 2013-05-31
- Revision:
- 0:0ed2a7c7190c
File content as of revision 0:0ed2a7c7190c:
#include "Thread.h" #include <stdlib.h> #include "error.h" namespace rtos { Thread::Thread(void (*task)(void const *argument), void *argument, osPriority priority, uint32_t stack_size, unsigned char *stack_pointer) { #ifdef CMSIS_OS_RTX _thread_def.pthread = task; _thread_def.tpriority = priority; _thread_def.stacksize = stack_size; if (stack_pointer != NULL) { _thread_def.stack_pointer = stack_pointer; } else { _thread_def.stack_pointer = (unsigned char*) malloc(stack_size); if (_thread_def.stack_pointer == NULL) error("Error allocating the stack memory"); } #endif _tid = osThreadCreate(&_thread_def, argument); } osStatus Thread::terminate() { return osThreadTerminate(_tid); } osStatus Thread::set_priority(osPriority priority) { return osThreadSetPriority(_tid, priority); } osPriority Thread::get_priority() { return osThreadGetPriority(_tid); } int32_t Thread::signal_set(int32_t signals) { return osSignalSet(_tid, signals); } osEvent Thread::signal_wait(int32_t signals, uint32_t millisec) { return osSignalWait(signals, millisec); } osStatus Thread::wait(uint32_t millisec) { return osDelay(millisec); } osStatus Thread::yield() { return osThreadYield(); } osThreadId Thread::gettid() { return osThreadGetId(); } }