A small library that's provide helpers for programmers
MyThread.cpp@4:eef83534b19e, 2015-04-14 (annotated)
- Committer:
- clemounet
- Date:
- Tue Apr 14 13:07:53 2015 +0000
- Revision:
- 4:eef83534b19e
- Parent:
- 2:6cc4c56940af
.add CallBack
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
clemounet | 0:11d8781f1013 | 1 | |
clemounet | 1:ee7a5f05513d | 2 | #include "MyThread.h" |
clemounet | 1:ee7a5f05513d | 3 | #include "MyLibc.h" |
clemounet | 0:11d8781f1013 | 4 | |
clemounet | 4:eef83534b19e | 5 | #define __DEBUG__ 0 |
clemounet | 2:6cc4c56940af | 6 | #ifndef __MODULE__ |
clemounet | 2:6cc4c56940af | 7 | #define __MODULE__ "MyThread.cpp" |
clemounet | 2:6cc4c56940af | 8 | #endif |
clemounet | 2:6cc4c56940af | 9 | #include "MyDebug.h" |
clemounet | 2:6cc4c56940af | 10 | |
clemounet | 2:6cc4c56940af | 11 | |
clemounet | 0:11d8781f1013 | 12 | void MainTrampoline(void const *args){ |
clemounet | 0:11d8781f1013 | 13 | MyThread *mt = (MyThread*) args; |
clemounet | 0:11d8781f1013 | 14 | mt->Main(); |
clemounet | 0:11d8781f1013 | 15 | mt->t->signal_set(ENDSIG); |
clemounet | 0:11d8781f1013 | 16 | mt->t->terminate(); |
clemounet | 0:11d8781f1013 | 17 | } |
clemounet | 0:11d8781f1013 | 18 | |
clemounet | 2:6cc4c56940af | 19 | MyThread::MyThread(const char* name,uint32_t sz){ |
clemounet | 2:6cc4c56940af | 20 | stackSize = sz; |
clemounet | 1:ee7a5f05513d | 21 | tName = strdup(name); |
clemounet | 0:11d8781f1013 | 22 | } |
clemounet | 0:11d8781f1013 | 23 | |
clemounet | 0:11d8781f1013 | 24 | MyThread::~MyThread() { |
clemounet | 0:11d8781f1013 | 25 | free((char*)tName); |
clemounet | 0:11d8781f1013 | 26 | } |
clemounet | 0:11d8781f1013 | 27 | |
clemounet | 0:11d8781f1013 | 28 | void MyThread::Start(void){ |
clemounet | 0:11d8781f1013 | 29 | running = true; |
clemounet | 0:11d8781f1013 | 30 | } |
clemounet | 0:11d8781f1013 | 31 | |
clemounet | 0:11d8781f1013 | 32 | void MyThread::Stop(void){ |
clemounet | 0:11d8781f1013 | 33 | running = false; |
clemounet | 0:11d8781f1013 | 34 | } |
clemounet | 0:11d8781f1013 | 35 | |
clemounet | 0:11d8781f1013 | 36 | void MyThread::Run(void){ |
clemounet | 2:6cc4c56940af | 37 | t = new Thread(MainTrampoline,this,osPriorityNormal,stackSize); |
clemounet | 0:11d8781f1013 | 38 | } |
clemounet | 0:11d8781f1013 | 39 | |
clemounet | 0:11d8781f1013 | 40 | void MyThread::Wait(int32_t ms){ |
clemounet | 0:11d8781f1013 | 41 | t->wait(ms); |
clemounet | 0:11d8781f1013 | 42 | } |
clemounet | 0:11d8781f1013 | 43 | |
clemounet | 0:11d8781f1013 | 44 | void MyThread::WaitEnd(){ |
clemounet | 0:11d8781f1013 | 45 | t->signal_wait(ENDSIG); |
clemounet | 0:11d8781f1013 | 46 | } |