SmartAudio/package/allwinner/liballwinner-base/thread.h

61 lines
941 B
C
Raw Normal View History

2018-07-13 01:31:50 +00:00
#ifndef __THREAD_H__
#define __THREAD_H__
#include <pthread.h>
#include <stdio.h>
class Thread{
public:
Thread():mStop(false){
//perror("Thread comstruct\n");
};
virtual ~Thread(){
//perror("Thread discomstruct\n");
};
public:
static const int THREAD_EXIT = 0xff;
static const int THREAD_CONTINUE = 0xf0;
public:
pthread_t getTid(){
return mTid;
};
int run(){
if(pthread_create( &mTid, NULL, run, this ) != 0){
perror("create read thread failed!\n");
return -1;
}
if( pthread_detach( mTid ) ){
perror("detach read thread failed!\n");
return -1;
}
return 0;
};
virtual int loop(){
return THREAD_EXIT;
};
protected:
//threads
bool mStop;
private:
static void* run(void* arg){
Thread* t = (Thread*)arg;
while(1){
if( THREAD_EXIT == t->loop()) break;
}
//perror("Thread finish!\n");
return (void*)0;
};
private:
pthread_t mTid;
};
#endif