Delta / Mbed OS Delta_CLI

Fork of NNN40_CLI by Delta

Committer:
silviaChen
Date:
Fri Nov 11 09:02:51 2016 +0000
Revision:
24:838a0b25934b
Parent:
17:03c8af30087a
CLI V1.18, modify ERROR message format

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tsungta 17:03c8af30087a 1 #ifdef MBED_CONF_RTOS_PRESENT
tsungta 17:03c8af30087a 2 #include "EventLoop.h"
tsungta 17:03c8af30087a 3
tsungta 17:03c8af30087a 4 #include "events.h"
tsungta 17:03c8af30087a 5 #include "rtos.h"
tsungta 17:03c8af30087a 6 #include "mbed.h"
tsungta 17:03c8af30087a 7
tsungta 17:03c8af30087a 8
tsungta 17:03c8af30087a 9 EventLoop::EventLoop(
tsungta 17:03c8af30087a 10 osPriority priority,
tsungta 17:03c8af30087a 11 unsigned event_size,
tsungta 17:03c8af30087a 12 unsigned char *event_pointer,
tsungta 17:03c8af30087a 13 uint32_t stack_size,
tsungta 17:03c8af30087a 14 unsigned char *stack_pointer)
tsungta 17:03c8af30087a 15 : EventQueue(event_size, event_pointer)
tsungta 17:03c8af30087a 16 , _thread(priority, stack_size, stack_pointer)
tsungta 17:03c8af30087a 17 , _running(false) {
tsungta 17:03c8af30087a 18 }
tsungta 17:03c8af30087a 19
tsungta 17:03c8af30087a 20 EventLoop::~EventLoop() {
tsungta 17:03c8af30087a 21 stop();
tsungta 17:03c8af30087a 22 }
tsungta 17:03c8af30087a 23
tsungta 17:03c8af30087a 24 static void run(EventLoop *loop) {
tsungta 17:03c8af30087a 25 loop->dispatch();
tsungta 17:03c8af30087a 26 }
tsungta 17:03c8af30087a 27
tsungta 17:03c8af30087a 28 osStatus EventLoop::start() {
tsungta 17:03c8af30087a 29 if (_running) {
tsungta 17:03c8af30087a 30 return osOK;
tsungta 17:03c8af30087a 31 }
tsungta 17:03c8af30087a 32
tsungta 17:03c8af30087a 33 osStatus status = _thread.start(this, run);
tsungta 17:03c8af30087a 34 _running = (status == osOK);
tsungta 17:03c8af30087a 35 return status;
tsungta 17:03c8af30087a 36 }
tsungta 17:03c8af30087a 37
tsungta 17:03c8af30087a 38 osStatus EventLoop::stop() {
tsungta 17:03c8af30087a 39 if (!_running) {
tsungta 17:03c8af30087a 40 return osOK;
tsungta 17:03c8af30087a 41 }
tsungta 17:03c8af30087a 42
tsungta 17:03c8af30087a 43 break_();
tsungta 17:03c8af30087a 44 osStatus status = _thread.join();
tsungta 17:03c8af30087a 45 _running = false;
tsungta 17:03c8af30087a 46 return status;
tsungta 17:03c8af30087a 47 }
tsungta 17:03c8af30087a 48
tsungta 17:03c8af30087a 49 #endif
tsungta 17:03c8af30087a 50