diff --git a/src/libtomahawk/Album.cpp b/src/libtomahawk/Album.cpp index 8426314a4..cf5c234ea 100644 --- a/src/libtomahawk/Album.cpp +++ b/src/libtomahawk/Album.cpp @@ -201,15 +201,14 @@ Album::id() const Q_D( const Album ); s_idMutex.lockForRead(); const bool waiting = d->waitingForId; - unsigned int finalId = d->id; s_idMutex.unlock(); if ( waiting ) { - finalId = d->idFuture.result(); + d->idFuture.waitForFinished(); s_idMutex.lockForWrite(); - d->id = finalId; + d->id = d->idFuture.result(); d->waitingForId = false; if ( d->id > 0 ) @@ -218,7 +217,7 @@ Album::id() const s_idMutex.unlock(); } - return finalId; + return d->id; } diff --git a/src/libtomahawk/Artist.cpp b/src/libtomahawk/Artist.cpp index c340fea68..8922361fc 100644 --- a/src/libtomahawk/Artist.cpp +++ b/src/libtomahawk/Artist.cpp @@ -338,12 +338,10 @@ Artist::id() const // qDebug() << Q_FUNC_INFO << "Asked for artist ID and NOT loaded yet" << m_name << m_idFuture.isFinished(); 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(); - unsigned int finalid = m_idFuture.result(); - // qDebug() << Q_FUNC_INFO << "Got loaded artist:" << m_name << finalid; s_idMutex.lockForWrite(); - m_id = finalid; + m_id = m_idFuture.result(); m_waitingForFuture = false; if ( m_id > 0 )