Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
IVT
src
Threading
PosixThread.cpp
Go to the documentation of this file.
1
// ****************************************************************************
2
// This file is part of the Integrating Vision Toolkit (IVT).
3
//
4
// The IVT is maintained by the Karlsruhe Institute of Technology (KIT)
5
// (www.kit.edu) in cooperation with the company Keyetech (www.keyetech.de).
6
//
7
// Copyright (C) 2014 Karlsruhe Institute of Technology (KIT).
8
// All rights reserved.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are met:
12
//
13
// 1. Redistributions of source code must retain the above copyright
14
// notice, this list of conditions and the following disclaimer.
15
//
16
// 2. Redistributions in binary form must reproduce the above copyright
17
// notice, this list of conditions and the following disclaimer in the
18
// documentation and/or other materials provided with the distribution.
19
//
20
// 3. Neither the name of the KIT nor the names of its contributors may be
21
// used to endorse or promote products derived from this software
22
// without specific prior written permission.
23
//
24
// THIS SOFTWARE IS PROVIDED BY THE KIT AND CONTRIBUTORS “AS IS” AND ANY
25
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
26
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
// DISCLAIMED. IN NO EVENT SHALL THE KIT OR CONTRIBUTORS BE LIABLE FOR ANY
28
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
29
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
31
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
32
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
33
// THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
// ****************************************************************************
35
// ****************************************************************************
36
// Filename: PosixThread.cpp
37
// Author: Pedram Azad
38
// Date: 2005
39
// ****************************************************************************
40
41
42
// ****************************************************************************
43
// Includes
44
// ****************************************************************************
45
46
#include <new>
// for explicitly using correct new/delete operators on VC DSPs
47
48
#include "
PosixThread.h
"
49
50
51
52
// ****************************************************************************
53
// ThreadRoutine
54
// ****************************************************************************
55
56
void
*
ThreadRoutine
(
void
*pParameter)
57
{
58
((
CThreadBase
*) pParameter)->_ThreadMethod();
59
((
CThreadBase
*) pParameter)->m_bCompletelyDone =
true
;
60
return
0;
61
}
62
63
64
// ****************************************************************************
65
// Constructor / Destructor
66
// ****************************************************************************
67
68
CPosixThread::CPosixThread
()
69
{
70
m_hThreadHandle
= 0;
71
}
72
73
CPosixThread::~CPosixThread
()
74
{
75
Stop
();
76
}
77
78
79
// ****************************************************************************
80
// Methods
81
// ****************************************************************************
82
83
void
CPosixThread::_Start
()
84
{
85
if
(
m_hThreadHandle
)
86
return
;
87
88
pthread_create(&
m_hThreadHandle
, 0,
ThreadRoutine
,
this
);
89
}
90
91
void
CPosixThread::_Stop
()
92
{
93
if
(!
m_hThreadHandle
)
94
return
;
95
96
// wait and kill thread after timeout
97
pthread_join(
m_hThreadHandle
, NULL);
98
99
m_hThreadHandle
= 0;
100
}
101
102
void
CPosixThread::ThreadMethodFinished
()
103
{
104
pthread_exit(NULL);
105
}
CPosixThread::m_hThreadHandle
pthread_t m_hThreadHandle
Definition:
PosixThread.h:84
CPosixThread::_Start
void _Start()
Definition:
PosixThread.cpp:83
CPosixThread::CPosixThread
CPosixThread()
Definition:
PosixThread.cpp:68
CPosixThread::ThreadMethodFinished
void ThreadMethodFinished()
Definition:
PosixThread.cpp:102
PosixThread.h
CPosixThread::~CPosixThread
~CPosixThread()
Definition:
PosixThread.cpp:73
CPosixThread::_Stop
void _Stop()
Definition:
PosixThread.cpp:91
ThreadRoutine
void * ThreadRoutine(void *pParameter)
Definition:
PosixThread.cpp:56
CThreadBase::Stop
void Stop()
Definition:
ThreadBase.h:105
CThreadBase
Definition:
ThreadBase.h:66
asr_ivt
Author(s): Allgeyer Tobias, Hutmacher Robin, Kleinert Daniel, Meißner Pascal, Scholz Jonas, Stöckle Patrick
autogenerated on Mon Dec 2 2019 03:47:28