summaryrefslogtreecommitdiff
authorsimon <simon>2002-12-02 19:31:37 (UTC)
committer simon <simon>2002-12-02 19:31:37 (UTC)
commita45bd312c97a83fef9b3d93c7caedb1f302c6ebe (patch) (unidiff)
tree0258962981573e1d9fd5e5453026b068136e4839
parent618f271eff61003b66eb4a216826d8d52e1be627 (diff)
downloadopie-a45bd312c97a83fef9b3d93c7caedb1f302c6ebe.zip
opie-a45bd312c97a83fef9b3d93c7caedb1f302c6ebe.tar.gz
opie-a45bd312c97a83fef9b3d93c7caedb1f302c6ebe.tar.bz2
- copyright fixlet
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/threadutil.cpp2
-rw-r--r--noncore/multimedia/opieplayer2/threadutil.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/noncore/multimedia/opieplayer2/threadutil.cpp b/noncore/multimedia/opieplayer2/threadutil.cpp
index 63863b4..4055c74 100644
--- a/noncore/multimedia/opieplayer2/threadutil.cpp
+++ b/noncore/multimedia/opieplayer2/threadutil.cpp
@@ -1,130 +1,130 @@
1/* This file is part of the KDE project 1/* This file is part of the KDE project
2 Copyright (C) 1999 Simon Hausmann <hausmann@kde.org> 2 Copyright (C) 2002 Simon Hausmann <hausmann@kde.org>
3 3
4 This library is free software; you can redistribute it and/or 4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public 5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either 6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version. 7 version 2 of the License, or (at your option) any later version.
8 8
9 This library is distributed in the hope that it will be useful, 9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details. 12 Library General Public License for more details.
13 13
14 You should have received a copy of the GNU Library General Public License 14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to 15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 Boston, MA 02111-1307, USA. 17 Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#include "threadutil.h" 20#include "threadutil.h"
21 21
22#include <qsocketnotifier.h> 22#include <qsocketnotifier.h>
23 23
24#include <pthread.h> 24#include <pthread.h>
25#include <assert.h> 25#include <assert.h>
26#include <unistd.h> 26#include <unistd.h>
27 27
28using namespace ThreadUtil; 28using namespace ThreadUtil;
29 29
30struct Mutex::Data 30struct Mutex::Data
31{ 31{
32 Data() 32 Data()
33 { 33 {
34 pthread_mutex_init( &mutex, 0 ); 34 pthread_mutex_init( &mutex, 0 );
35 } 35 }
36 ~Data() 36 ~Data()
37 { 37 {
38 pthread_mutex_destroy( &mutex ); 38 pthread_mutex_destroy( &mutex );
39 } 39 }
40 40
41 pthread_mutex_t mutex; 41 pthread_mutex_t mutex;
42}; 42};
43 43
44Mutex::Mutex() 44Mutex::Mutex()
45 : d( new Data ) 45 : d( new Data )
46{ 46{
47} 47}
48 48
49Mutex::~Mutex() 49Mutex::~Mutex()
50{ 50{
51 delete d; 51 delete d;
52} 52}
53 53
54void Mutex::lock() 54void Mutex::lock()
55{ 55{
56 pthread_mutex_lock( &d->mutex ); 56 pthread_mutex_lock( &d->mutex );
57} 57}
58 58
59void Mutex::unlock() 59void Mutex::unlock()
60{ 60{
61 pthread_mutex_unlock( &d->mutex ); 61 pthread_mutex_unlock( &d->mutex );
62} 62}
63 63
64bool Mutex::tryLock() 64bool Mutex::tryLock()
65{ 65{
66 return pthread_mutex_trylock( &d->mutex ) == 0; 66 return pthread_mutex_trylock( &d->mutex ) == 0;
67} 67}
68 68
69bool Mutex::isLocked() 69bool Mutex::isLocked()
70{ 70{
71 if ( !tryLock() ) 71 if ( !tryLock() )
72 return true; 72 return true;
73 73
74 unlock(); 74 unlock();
75 return false; 75 return false;
76} 76}
77 77
78struct WaitCondition::Data 78struct WaitCondition::Data
79{ 79{
80 Data() 80 Data()
81 { 81 {
82 int result = pthread_cond_init( &waitCondition, 0 ); 82 int result = pthread_cond_init( &waitCondition, 0 );
83 assert( result == 0 ); 83 assert( result == 0 );
84 } 84 }
85 ~Data() 85 ~Data()
86 { 86 {
87 pthread_cond_destroy( &waitCondition ); 87 pthread_cond_destroy( &waitCondition );
88 } 88 }
89 89
90 pthread_cond_t waitCondition; 90 pthread_cond_t waitCondition;
91}; 91};
92 92
93WaitCondition::WaitCondition() 93WaitCondition::WaitCondition()
94 : d( new Data ) 94 : d( new Data )
95{ 95{
96} 96}
97 97
98WaitCondition::~WaitCondition() 98WaitCondition::~WaitCondition()
99{ 99{
100 delete d; 100 delete d;
101} 101}
102 102
103bool WaitCondition::wait() 103bool WaitCondition::wait()
104{ 104{
105 Mutex m; 105 Mutex m;
106 m.lock(); 106 m.lock();
107 return wait( m ); 107 return wait( m );
108} 108}
109 109
110bool WaitCondition::wait( Mutex &mutex ) 110bool WaitCondition::wait( Mutex &mutex )
111{ 111{
112 return pthread_cond_wait( &d->waitCondition, &mutex.d->mutex ); 112 return pthread_cond_wait( &d->waitCondition, &mutex.d->mutex );
113} 113}
114 114
115void WaitCondition::wakeOne() 115void WaitCondition::wakeOne()
116{ 116{
117 pthread_cond_signal( &d->waitCondition ); 117 pthread_cond_signal( &d->waitCondition );
118} 118}
119 119
120void WaitCondition::wakeAll() 120void WaitCondition::wakeAll()
121{ 121{
122 pthread_cond_broadcast( &d->waitCondition ); 122 pthread_cond_broadcast( &d->waitCondition );
123} 123}
124 124
125OnewayNotifier::OnewayNotifier() 125OnewayNotifier::OnewayNotifier()
126{ 126{
127 int fds[ 2 ]; 127 int fds[ 2 ];
128 pipe( fds ); 128 pipe( fds );
129 m_readFd = fds[ 0 ]; 129 m_readFd = fds[ 0 ];
130 m_writeFd = fds[ 1 ]; 130 m_writeFd = fds[ 1 ];
diff --git a/noncore/multimedia/opieplayer2/threadutil.h b/noncore/multimedia/opieplayer2/threadutil.h
index bcb9db9..5cc4cdc 100644
--- a/noncore/multimedia/opieplayer2/threadutil.h
+++ b/noncore/multimedia/opieplayer2/threadutil.h
@@ -1,130 +1,130 @@
1/* This file is part of the KDE project 1/* This file is part of the KDE project
2 Copyright (C) 1999 Simon Hausmann <hausmann@kde.org> 2 Copyright (C) 2002 Simon Hausmann <hausmann@kde.org>
3 3
4 This library is free software; you can redistribute it and/or 4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Library General Public 5 modify it under the terms of the GNU Library General Public
6 License as published by the Free Software Foundation; either 6 License as published by the Free Software Foundation; either
7 version 2 of the License, or (at your option) any later version. 7 version 2 of the License, or (at your option) any later version.
8 8
9 This library is distributed in the hope that it will be useful, 9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of 10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details. 12 Library General Public License for more details.
13 13
14 You should have received a copy of the GNU Library General Public License 14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to 15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 16 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17 Boston, MA 02111-1307, USA. 17 Boston, MA 02111-1307, USA.
18*/ 18*/
19 19
20#ifndef THREADUTIL_H 20#ifndef THREADUTIL_H
21#define THREADUTIL_H 21#define THREADUTIL_H
22 22
23#include <qvaluelist.h> 23#include <qvaluelist.h>
24#include <qobject.h> 24#include <qobject.h>
25#include <qguardedptr.h> 25#include <qguardedptr.h>
26 26
27class QSocketNotifier; 27class QSocketNotifier;
28 28
29namespace ThreadUtil 29namespace ThreadUtil
30{ 30{
31 31
32 class Mutex 32 class Mutex
33 { 33 {
34 friend class WaitCondition; 34 friend class WaitCondition;
35 public: 35 public:
36 Mutex(); 36 Mutex();
37 ~Mutex(); 37 ~Mutex();
38 38
39 void lock(); 39 void lock();
40 void unlock(); 40 void unlock();
41 bool tryLock(); 41 bool tryLock();
42 bool isLocked(); 42 bool isLocked();
43 43
44 private: 44 private:
45 struct Data; 45 struct Data;
46 Data *d; 46 Data *d;
47 47
48 Mutex( const Mutex & ); 48 Mutex( const Mutex & );
49 Mutex &operator=( const Mutex & ); 49 Mutex &operator=( const Mutex & );
50 }; 50 };
51 51
52 class AutoLock 52 class AutoLock
53 { 53 {
54 public: 54 public:
55 AutoLock( Mutex &mutex ) : m_mutex( mutex ) { m_mutex.lock(); } 55 AutoLock( Mutex &mutex ) : m_mutex( mutex ) { m_mutex.lock(); }
56 ~AutoLock() { m_mutex.unlock(); } 56 ~AutoLock() { m_mutex.unlock(); }
57 57
58 Mutex *operator &() const { return &m_mutex; } 58 Mutex *operator &() const { return &m_mutex; }
59 59
60 private: 60 private:
61 Mutex &m_mutex; 61 Mutex &m_mutex;
62 }; 62 };
63 63
64 class WaitCondition 64 class WaitCondition
65 { 65 {
66 public: 66 public:
67 WaitCondition(); 67 WaitCondition();
68 ~WaitCondition(); 68 ~WaitCondition();
69 69
70 bool wait(); 70 bool wait();
71 bool wait( Mutex &mutex ); 71 bool wait( Mutex &mutex );
72 72
73 void wakeOne(); 73 void wakeOne();
74 void wakeAll(); 74 void wakeAll();
75 75
76 private: 76 private:
77 struct Data; 77 struct Data;
78 Data *d; 78 Data *d;
79 79
80 WaitCondition( const WaitCondition & ); 80 WaitCondition( const WaitCondition & );
81 WaitCondition &operator=( const WaitCondition & ); 81 WaitCondition &operator=( const WaitCondition & );
82 }; 82 };
83 83
84 class OnewayNotifier : public QObject 84 class OnewayNotifier : public QObject
85 { 85 {
86 Q_OBJECT 86 Q_OBJECT
87 public: 87 public:
88 OnewayNotifier(); 88 OnewayNotifier();
89 ~OnewayNotifier(); 89 ~OnewayNotifier();
90 90
91 void notify(); 91 void notify();
92 92
93 signals: 93 signals:
94 void awake(); 94 void awake();
95 95
96 private slots: 96 private slots:
97 void wakeUp(); 97 void wakeUp();
98 98
99 private: 99 private:
100 int m_readFd; 100 int m_readFd;
101 int m_writeFd; 101 int m_writeFd;
102 QSocketNotifier *m_notifier; 102 QSocketNotifier *m_notifier;
103 }; 103 };
104 104
105 105
106 class Channel; 106 class Channel;
107 107
108 class ChannelMessage 108 class ChannelMessage
109 { 109 {
110 friend class Channel; 110 friend class Channel;
111 public: 111 public:
112 ChannelMessage( int type = -1 ); 112 ChannelMessage( int type = -1 );
113 virtual ~ChannelMessage(); 113 virtual ~ChannelMessage();
114 114
115 int type() const { return m_type; } 115 int type() const { return m_type; }
116 116
117 void reply(); 117 void reply();
118 118
119 private: 119 private:
120 ChannelMessage( const ChannelMessage & ); 120 ChannelMessage( const ChannelMessage & );
121 ChannelMessage &operator=( const ChannelMessage ); 121 ChannelMessage &operator=( const ChannelMessage );
122 122
123 int m_type; 123 int m_type;
124 bool m_isCall : 1; 124 bool m_isCall : 1;
125 bool m_replied : 1; 125 bool m_replied : 1;
126 bool m_inEventHandler : 1; 126 bool m_inEventHandler : 1;
127 Mutex m_guard; 127 Mutex m_guard;
128 WaitCondition m_condition; 128 WaitCondition m_condition;
129 QGuardedPtr<Channel> m_channel; 129 QGuardedPtr<Channel> m_channel;
130 }; 130 };