2008/7/1 Ian Monroe : > On Sun, Jun 29, 2008 at 10:33 PM, Daniel Caleb Jones > wrote: >> SVN commit 826219 by djones: >> >> Fixed an incredibly subtle, difficult to reproduce race condition bug, that took me hours and hours to track down. >> >> >> M +8 -8 BlockingQuery.cpp >> - connect( d->qm, SIGNAL( queryDone() ), SLOT( queryDone() ), Qt::DirectConnection ); >> + connect( d->qm, SIGNAL( newResultReady( QString, Meta::DataList ) ), SLOT( result( QString, Meta::DataList ) ), Qt::QueuedConnection ); > > Are you sure switching to the QueuedConnection doesn't make it > no-longer-blocking? Direct connections is the default for > same-thread-connections so if they were explictly called for it seems > like it might be on purpose. > > The BlockingQuery class does ask for trouble in several different > ways. You can't use it from a ::paint command, for instance, due to > its processEvents (IIRC). And this is exactly why we can't get the "year" attribute from an album when rendering the Collection Browser: year() gets all the tracks through a query and finds the year. -- Seb Ruiz http://www.sebruiz.net/