automotive-message-broker
0.14.803
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
plugins
common
thread.h
1
/*
2
Copyright (C) 2012 Intel Corporation
3
4
This library is free software; you can redistribute it and/or
5
modify it under the terms of the GNU Lesser General Public
6
License as published by the Free Software Foundation; either
7
version 2.1 of the License, or (at your option) any later version.
8
9
This library is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
Lesser General Public License for more details.
13
14
You should have received a copy of the GNU Lesser General Public
15
License along with this library; if not, write to the Free Software
16
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
*/
18
19
#ifndef _CUTIL_THREAD_H_
20
#define _CUTIL_THREAD_H_
21
22
#include <pthread.h>
23
#include <sys/prctl.h>
24
#include "logger.h"
25
30
namespace
CUtil {
31
38
class
Thread
39
{
45
pthread_cond_t cond;
51
pthread_mutex_t mutex;
57
pthread_t thread;
63
bool
runnableFlag;
64
65
private
:
66
74
bool
setRunnableFlag(
bool
flag);
75
83
bool
wait(
long
miliseconds );
84
85
public
:
86
92
virtual
void
run
() = 0;
93
94
protected
:
95
114
bool
isRunnable
(
long
miliseconds = 0);
115
116
public
:
117
118
Thread
();
119
virtual
~
Thread
();
120
127
virtual
bool
start
();
128
136
bool
setPriority(
int
priority);
137
143
virtual
void
stop
();
144
151
bool
restart
()
152
{
153
stop
();
154
return
start
();
155
}
156
};
157
158
}
159
160
#endif
161
Generated by
1.8.2