VTK
9.0.1
Common
Core
vtkSimpleCriticalSection.h
Go to the documentation of this file.
1
/*=========================================================================
2
3
Program: Visualization Toolkit
4
Module: vtkCriticalSection.h
5
6
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7
All rights reserved.
8
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10
This software is distributed WITHOUT ANY WARRANTY; without even
11
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
PURPOSE. See the above copyright notice for more information.
13
14
=========================================================================*/
36
#ifndef vtkSimpleCriticalSection_h
37
#define vtkSimpleCriticalSection_h
38
39
#include "vtkCommonCoreModule.h"
// For export macro
40
#include "
vtkSystemIncludes.h
"
41
42
#if defined(VTK_USE_PTHREADS)
43
#include <pthread.h>
// Needed for pthreads implementation of mutex
44
typedef
pthread_mutex_t
vtkCritSecType
;
45
#endif
46
47
#ifdef VTK_USE_WIN32_THREADS
48
#include "vtkWindows.h"
// Needed for win32 implementation of mutex
49
typedef
CRITICAL_SECTION
vtkCritSecType
;
50
#endif
51
52
#ifndef VTK_USE_PTHREADS
53
#ifndef VTK_USE_WIN32_THREADS
54
typedef
int
vtkCritSecType
;
55
#endif
56
#endif
57
58
// Critical Section object that is not a vtkObject.
59
class
VTKCOMMONCORE_EXPORT
vtkSimpleCriticalSection
60
{
61
public
:
62
// Default cstor
63
vtkSimpleCriticalSection
() { this->Init(); }
64
// Construct object locked if isLocked is different from 0
65
vtkSimpleCriticalSection
(
int
isLocked)
66
{
67
this->Init();
68
if
(isLocked)
69
{
70
this->Lock();
71
}
72
}
73
// Destructor
74
virtual
~
vtkSimpleCriticalSection
();
75
76
void
Init();
77
81
void
Lock();
82
86
void
Unlock();
87
88
protected
:
89
vtkCritSecType
CritSec
;
90
91
private
:
92
vtkSimpleCriticalSection
(
const
vtkSimpleCriticalSection
& other) =
delete
;
93
vtkSimpleCriticalSection
& operator=(
const
vtkSimpleCriticalSection
& rhs) =
delete
;
94
};
95
96
#endif
97
// VTK-HeaderTest-Exclude: vtkSimpleCriticalSection.h
vtkSimpleCriticalSection::vtkSimpleCriticalSection
vtkSimpleCriticalSection(int isLocked)
Definition:
vtkSimpleCriticalSection.h:65
vtkCritSecType
int vtkCritSecType
Definition:
vtkSimpleCriticalSection.h:54
vtkSimpleCriticalSection::vtkSimpleCriticalSection
vtkSimpleCriticalSection()
Definition:
vtkSimpleCriticalSection.h:63
vtkSimpleCriticalSection
Critical section locking class.
Definition:
vtkSimpleCriticalSection.h:59
vtkSimpleCriticalSection::CritSec
vtkCritSecType CritSec
Definition:
vtkSimpleCriticalSection.h:89
vtkSystemIncludes.h
Generated on Thu Jun 24 2021 15:17:26 for VTK by
1.8.17