Comment 3 for bug 1022194

Revision history for this message
Ilkka Tuohela (hile) wrote :

And more information. The actual reason is that m_trackCache is qCache with maximum size TRACK_CACHE_SIZE, and qCache will automatically remove old objects from cache if it is full.

Meaning. m_trackCache.insert() must never be called inside a mutex, as we do in getTrack, otherwise qCache automatic cleanup may call deleteTrack and deadlocks.