source: trunk/src/tools/qcriticalsection_p.cpp@ 10

Last change on this file since 10 was 8, checked in by dmik, 20 years ago

Transferred Qt for OS/2 version 3.3.1-rc5 sources from the CVS

  • Property svn:keywords set to Id
File size: 2.4 KB
Line 
1/****************************************************************************
2** $Id: qcriticalsection_p.cpp 8 2005-11-16 19:36:46Z dmik $
3**
4** Implementation of QCriticalSection class
5**
6** Copyright (C) 2001 Trolltech AS. All rights reserved.
7**
8** This file is part of the tools module of the Qt GUI Toolkit.
9**
10** This file may be distributed under the terms of the Q Public License
11** as defined by Trolltech AS of Norway and appearing in the file
12** LICENSE.QPL included in the packaging of this file.
13**
14** This file may be distributed and/or modified under the terms of the
15** GNU General Public License version 2 as published by the Free Software
16** Foundation and appearing in the file LICENSE.GPL included in the
17** packaging of this file.
18**
19** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
20** licenses may use this file in accordance with the Qt Commercial License
21** Agreement provided with the Software.
22**
23** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
24** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
25**
26** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
27** information about Qt Commercial License Agreements.
28** See http://www.trolltech.com/qpl/ for QPL licensing information.
29** See http://www.trolltech.com/gpl/ for GPL licensing information.
30**
31** Contact info@trolltech.com if any conditions of this licensing are
32** not clear to you.
33**
34**********************************************************************/
35
36#if defined(QT_THREAD_SUPPORT)
37
38#include <private/qcriticalsection_p.h>
39
40#if defined(Q_WS_WIN)
41# include "qt_windows.h"
42#elif defined(Q_OS_OS2)
43# include "qt_os2.h"
44#endif
45
46#if defined(Q_WS_WIN)
47class QCriticalSectionPrivate
48{
49public:
50 QCriticalSectionPrivate() {}
51
52 CRITICAL_SECTION section;
53};
54#endif
55
56QCriticalSection::QCriticalSection()
57{
58#if defined(Q_WS_WIN)
59 d = new QCriticalSectionPrivate;
60 InitializeCriticalSection( &d->section );
61#endif
62}
63
64QCriticalSection::~QCriticalSection()
65{
66#if defined(Q_WS_WIN)
67 DeleteCriticalSection( &d->section );
68 delete d;
69#endif
70}
71
72void QCriticalSection::enter()
73{
74#if defined(Q_WS_WIN)
75 EnterCriticalSection( &d->section );
76#elif defined(Q_OS_OS2)
77 DosEnterCritSec();
78#endif
79}
80
81void QCriticalSection::leave()
82{
83#if defined(Q_WS_WIN)
84 LeaveCriticalSection( &d->section );
85#elif defined(Q_OS_OS2)
86 DosExitCritSec();
87#endif
88}
89
90#endif
Note: See TracBrowser for help on using the repository browser.