1
0
mirror of https://github.com/tomahawk-player/tomahawk.git synced 2025-08-05 21:57:41 +02:00

Fixed and simplified Artist::id() & Album::id().

This commit is contained in:
Christian Muehlhaeuser
2015-04-10 03:46:56 +02:00
parent fa52fd9c48
commit 0206d2107a
2 changed files with 4 additions and 7 deletions

View File

@@ -201,15 +201,14 @@ Album::id() const
Q_D( const Album ); Q_D( const Album );
s_idMutex.lockForRead(); s_idMutex.lockForRead();
const bool waiting = d->waitingForId; const bool waiting = d->waitingForId;
unsigned int finalId = d->id;
s_idMutex.unlock(); s_idMutex.unlock();
if ( waiting ) if ( waiting )
{ {
finalId = d->idFuture.result(); d->idFuture.waitForFinished();
s_idMutex.lockForWrite(); s_idMutex.lockForWrite();
d->id = finalId; d->id = d->idFuture.result();
d->waitingForId = false; d->waitingForId = false;
if ( d->id > 0 ) if ( d->id > 0 )
@@ -218,7 +217,7 @@ Album::id() const
s_idMutex.unlock(); s_idMutex.unlock();
} }
return finalId; return d->id;
} }

View File

@@ -338,12 +338,10 @@ Artist::id() const
// qDebug() << Q_FUNC_INFO << "Asked for artist ID and NOT loaded yet" << m_name << m_idFuture.isFinished(); // qDebug() << Q_FUNC_INFO << "Asked for artist ID and NOT loaded yet" << m_name << m_idFuture.isFinished();
m_idFuture.waitForFinished(); m_idFuture.waitForFinished();
// qDebug() << "DONE WAITING:" << m_idFuture.resultCount() << m_idFuture.isResultReadyAt( 0 ) << m_idFuture.isCanceled() << m_idFuture.isFinished() << m_idFuture.isPaused() << m_idFuture.isRunning() << m_idFuture.isStarted(); // qDebug() << "DONE WAITING:" << m_idFuture.resultCount() << m_idFuture.isResultReadyAt( 0 ) << m_idFuture.isCanceled() << m_idFuture.isFinished() << m_idFuture.isPaused() << m_idFuture.isRunning() << m_idFuture.isStarted();
unsigned int finalid = m_idFuture.result();
// qDebug() << Q_FUNC_INFO << "Got loaded artist:" << m_name << finalid; // qDebug() << Q_FUNC_INFO << "Got loaded artist:" << m_name << finalid;
s_idMutex.lockForWrite(); s_idMutex.lockForWrite();
m_id = finalid; m_id = m_idFuture.result();
m_waitingForFuture = false; m_waitingForFuture = false;
if ( m_id > 0 ) if ( m_id > 0 )