summaryrefslogtreecommitdiff
authorsimon <simon>2002-12-11 01:41:39 (UTC)
committer simon <simon>2002-12-11 01:41:39 (UTC)
commit2318caf33bf03acfbcbc0ccce61e3e7ff0aac4aa (patch) (unidiff)
tree0fd4ed36dd54f26d730394fcef85704e04c06842
parent3ec7f32d0924c737664a6ad4dfb43dc3c20605d0 (diff)
downloadopie-2318caf33bf03acfbcbc0ccce61e3e7ff0aac4aa.zip
opie-2318caf33bf03acfbcbc0ccce61e3e7ff0aac4aa.tar.gz
opie-2318caf33bf03acfbcbc0ccce61e3e7ff0aac4aa.tar.bz2
- added bool Thread::isRunning() const
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/opieplayer2/threadutil.cpp6
-rw-r--r--noncore/multimedia/opieplayer2/threadutil.h2
2 files changed, 8 insertions, 0 deletions
diff --git a/noncore/multimedia/opieplayer2/threadutil.cpp b/noncore/multimedia/opieplayer2/threadutil.cpp
index 5687f42..a5cc92d 100644
--- a/noncore/multimedia/opieplayer2/threadutil.cpp
+++ b/noncore/multimedia/opieplayer2/threadutil.cpp
@@ -203,32 +203,38 @@ void Thread::terminate()
203 AutoLock lock( d->guard ); 203 AutoLock lock( d->guard );
204 if ( !d->isRunning ) 204 if ( !d->isRunning )
205 return; 205 return;
206 206
207 pthread_cancel( d->self ); 207 pthread_cancel( d->self );
208} 208}
209 209
210bool Thread::wait() 210bool Thread::wait()
211{ 211{
212 AutoLock lock( d->guard ); 212 AutoLock lock( d->guard );
213 if ( !d->isRunning ) 213 if ( !d->isRunning )
214 return true; 214 return true;
215 215
216 return d->finishCondition.wait( d->guard ); 216 return d->finishCondition.wait( d->guard );
217} 217}
218 218
219bool Thread::isRunning() const
220{
221 AutoLock lock( d->guard );
222 return d->isRunning;
223}
224
219void Thread::exit() 225void Thread::exit()
220{ 226{
221 pthread_exit( 0 ); 227 pthread_exit( 0 );
222} 228}
223 229
224OnewayNotifier::OnewayNotifier() 230OnewayNotifier::OnewayNotifier()
225{ 231{
226 int fds[ 2 ]; 232 int fds[ 2 ];
227 pipe( fds ); 233 pipe( fds );
228 m_readFd = fds[ 0 ]; 234 m_readFd = fds[ 0 ];
229 m_writeFd = fds[ 1 ]; 235 m_writeFd = fds[ 1 ];
230 236
231 m_notifier = new QSocketNotifier( m_readFd, QSocketNotifier::Read ); 237 m_notifier = new QSocketNotifier( m_readFd, QSocketNotifier::Read );
232 connect( m_notifier, SIGNAL( activated( int ) ), 238 connect( m_notifier, SIGNAL( activated( int ) ),
233 this, SLOT( wakeUp() ) ); 239 this, SLOT( wakeUp() ) );
234} 240}
diff --git a/noncore/multimedia/opieplayer2/threadutil.h b/noncore/multimedia/opieplayer2/threadutil.h
index b537cc1..b67b61d 100644
--- a/noncore/multimedia/opieplayer2/threadutil.h
+++ b/noncore/multimedia/opieplayer2/threadutil.h
@@ -87,32 +87,34 @@ namespace ThreadUtil
87 WaitCondition &operator=( const WaitCondition & ); 87 WaitCondition &operator=( const WaitCondition & );
88 }; 88 };
89 89
90 class Thread 90 class Thread
91 { 91 {
92 friend void *::_threadutil_start_thread( void* ); 92 friend void *::_threadutil_start_thread( void* );
93 friend void ::_threadutil_terminate_thread( void* ); 93 friend void ::_threadutil_terminate_thread( void* );
94 public: 94 public:
95 Thread(); 95 Thread();
96 virtual ~Thread(); 96 virtual ~Thread();
97 97
98 void start(); 98 void start();
99 void terminate(); 99 void terminate();
100 100
101 bool wait(); 101 bool wait();
102 102
103 bool isRunning() const;
104
103 static void exit(); 105 static void exit();
104 protected: 106 protected:
105 virtual void run() = 0; 107 virtual void run() = 0;
106 108
107 private: 109 private:
108 struct Data; 110 struct Data;
109 Data *d; 111 Data *d;
110 }; 112 };
111 113
112 class OnewayNotifier : public QObject 114 class OnewayNotifier : public QObject
113 { 115 {
114 Q_OBJECT 116 Q_OBJECT
115 public: 117 public:
116 OnewayNotifier(); 118 OnewayNotifier();
117 ~OnewayNotifier(); 119 ~OnewayNotifier();
118 120