[Development] QBasicMutex::lockInternal() race condition?

Thiago Macieira thiago.macieira at intel.com
Thu Sep 20 18:14:11 CEST 2012


On quinta-feira, 20 de setembro de 2012 15.50.12, Tony Van Eerd wrote:
> > We check for that case shortly after:
> > 
> >
> > 361     if (d != d_ptr.loadAcquire()) {
> > 362        //Either the mutex is already unlocked, or relocked with
> > another mutex
> > 363        d->deref();
> > 364        continue;
> > 365     }
> >
> > 
> 
> Or course.  Very next lines!  "shortly after" is a being nice to me.  Sorry.
> 
> I wonder if the Acquire couldn't be Relaxed...

Acquire is correct, since we'll use some of the fields that requires memory 
ordering, like the id or waiters fields.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center
     Intel Sweden AB - Registration Number: 556189-6027
     Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 190 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.qt-project.org/pipermail/development/attachments/20120920/f299999d/attachment.sig>


More information about the Development mailing list