From kde-commits Mon Jun 30 22:38:10 2008 From: "Seb Ruiz" Date: Mon, 30 Jun 2008 22:38:10 +0000 To: kde-commits Subject: Re: extragear/multimedia/amarok/src/collection Message-Id: <60ebdd0b0806301538k2e97d4cbm151599d320c88a7f () mail ! gmail ! com> X-MARC-Message: https://marc.info/?l=kde-commits&m=121486552016685 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/