source: trunk/src/tools/qthreadinstance_p.h@ 97

Last change on this file since 97 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.8 KB
Line 
1/****************************************************************************
2** $Id: qthreadinstance_p.h 8 2005-11-16 19:36:46Z dmik $
3**
4** ...
5**
6** Copyright (C) 2003 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#ifndef QTHREAD_P_H
37#define QTHREAD_P_H
38
39//
40// W A R N I N G
41// -------------
42//
43// This file is not part of the Qt API. It exists for the convenience
44// of QThread and QThreadStorage. This header file may change from
45// version to version without notice, or even be removed.
46//
47// We mean it.
48//
49//
50
51#ifdef QT_THREAD_SUPPORT
52
53#ifndef QT_H
54#include "qmutex.h"
55#endif // QT_H
56
57class QThreadInstance {
58public:
59 static QThreadInstance *current();
60
61 void init(unsigned int stackSize);
62 void deinit();
63
64 QMutex *mutex() const;
65 void terminate();
66
67 unsigned int stacksize;
68 void *args[2];
69 void **thread_storage;
70 bool finished : 1;
71 bool running : 1;
72 bool orphan : 1;
73
74#ifdef Q_OS_UNIX
75 pthread_cond_t thread_done;
76 pthread_t thread_id;
77
78 static void *start( void * );
79 static void finish( void * );
80#endif // Q_OS_UNIX
81
82#ifdef Q_OS_WIN32
83 HANDLE handle;
84 unsigned int thread_id;
85 int waiters;
86
87 static unsigned int __stdcall start( void * );
88 static void finish( QThreadInstance * );
89#endif // Q_OS_WIN32
90
91#ifdef Q_OS_OS2
92 TID thread_id;
93 int waiters;
94
95 static void _System start( void * );
96 static void finish( QThreadInstance * );
97#endif // Q_OS_OS2
98};
99
100#endif // QT_THREAD_SUPPORT
101#endif // QTHREAD_P_H
Note: See TracBrowser for help on using the repository browser.