-rw-r--r-- | noncore/multimedia/opieplayer2/threadutil.cpp | 14 | ||||
-rw-r--r-- | noncore/multimedia/opieplayer2/threadutil.h | 5 |
2 files changed, 9 insertions, 10 deletions
diff --git a/noncore/multimedia/opieplayer2/threadutil.cpp b/noncore/multimedia/opieplayer2/threadutil.cpp index a5cc92d..7a9e1a4 100644 --- a/noncore/multimedia/opieplayer2/threadutil.cpp +++ b/noncore/multimedia/opieplayer2/threadutil.cpp @@ -137,24 +137,24 @@ struct Thread::Data extern "C" { -void _threadutil_terminate_thread( void *arg ) +static void terminate_thread( void *arg ) { - Thread *thr = ( Thread* )arg; + Thread::Data *data = ( Thread::Data* )arg; - assert( thr ); + assert( data ); - AutoLock locker( thr->d->guard ); - thr->d->isRunning = false; - thr->d->finishCondition.wakeAll(); + AutoLock locker( data->guard ); + data->isRunning = false; + data->finishCondition.wakeAll(); } void *_threadutil_start_thread( void *arg ) { Thread *thr = ( Thread* )arg; - pthread_cleanup_push( _threadutil_terminate_thread, thr ); + pthread_cleanup_push( terminate_thread, thr->d ); thr->d->isRunning = true; thr->run(); diff --git a/noncore/multimedia/opieplayer2/threadutil.h b/noncore/multimedia/opieplayer2/threadutil.h index b67b61d..21ae6b2 100644 --- a/noncore/multimedia/opieplayer2/threadutil.h +++ b/noncore/multimedia/opieplayer2/threadutil.h @@ -28,9 +28,8 @@ class QSocketNotifier; extern "C" { void *_threadutil_start_thread( void* ); - void _threadutil_terminate_thread( void* ); } namespace ThreadUtil { @@ -89,10 +88,11 @@ namespace ThreadUtil class Thread { friend void *::_threadutil_start_thread( void* ); - friend void ::_threadutil_terminate_thread( void* ); public: + struct Data; + Thread(); virtual ~Thread(); void start(); @@ -106,9 +106,8 @@ namespace ThreadUtil protected: virtual void run() = 0; private: - struct Data; Data *d; }; class OnewayNotifier : public QObject |