A small library that's provide helpers for programmers
MyThread.cpp@0:11d8781f1013, 2015-02-16 (annotated)
- Committer:
- clemounet
- Date:
- Mon Feb 16 16:30:36 2015 +0000
- Revision:
- 0:11d8781f1013
- Child:
- 1:ee7a5f05513d
My Helpers = (MyThread,...)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
clemounet | 0:11d8781f1013 | 1 | |
clemounet | 0:11d8781f1013 | 2 | #include "MyThreads.h" |
clemounet | 0:11d8781f1013 | 3 | |
clemounet | 0:11d8781f1013 | 4 | void MainTrampoline(void const *args){ |
clemounet | 0:11d8781f1013 | 5 | MyThread *mt = (MyThread*) args; |
clemounet | 0:11d8781f1013 | 6 | mt->Main(); |
clemounet | 0:11d8781f1013 | 7 | mt->t->signal_set(ENDSIG); |
clemounet | 0:11d8781f1013 | 8 | mt->t->terminate(); |
clemounet | 0:11d8781f1013 | 9 | } |
clemounet | 0:11d8781f1013 | 10 | |
clemounet | 0:11d8781f1013 | 11 | MyThread::MyThread(const char* name){ |
clemounet | 0:11d8781f1013 | 12 | tName = (const char*) malloc (sizeof(char)*strlen(name)+1); |
clemounet | 0:11d8781f1013 | 13 | strcpy((char*)tName,name); |
clemounet | 0:11d8781f1013 | 14 | } |
clemounet | 0:11d8781f1013 | 15 | |
clemounet | 0:11d8781f1013 | 16 | MyThread::~MyThread() { |
clemounet | 0:11d8781f1013 | 17 | free((char*)tName); |
clemounet | 0:11d8781f1013 | 18 | } |
clemounet | 0:11d8781f1013 | 19 | |
clemounet | 0:11d8781f1013 | 20 | void MyThread::Start(void){ |
clemounet | 0:11d8781f1013 | 21 | running = true; |
clemounet | 0:11d8781f1013 | 22 | } |
clemounet | 0:11d8781f1013 | 23 | |
clemounet | 0:11d8781f1013 | 24 | void MyThread::Stop(void){ |
clemounet | 0:11d8781f1013 | 25 | running = false; |
clemounet | 0:11d8781f1013 | 26 | } |
clemounet | 0:11d8781f1013 | 27 | |
clemounet | 0:11d8781f1013 | 28 | void MyThread::Run(void){ |
clemounet | 0:11d8781f1013 | 29 | t = new Thread(MainTrampoline,this); |
clemounet | 0:11d8781f1013 | 30 | } |
clemounet | 0:11d8781f1013 | 31 | |
clemounet | 0:11d8781f1013 | 32 | void MyThread::Wait(int32_t ms){ |
clemounet | 0:11d8781f1013 | 33 | t->wait(ms); |
clemounet | 0:11d8781f1013 | 34 | } |
clemounet | 0:11d8781f1013 | 35 | |
clemounet | 0:11d8781f1013 | 36 | void MyThread::WaitEnd(){ |
clemounet | 0:11d8781f1013 | 37 | t->signal_wait(ENDSIG); |
clemounet | 0:11d8781f1013 | 38 | } |