Review Request: Add spinlocks lock type, based on GCC intrisincs

Michael Pyne mpyne at kde.org
Tue Aug 28 23:43:43 BST 2012


On Wednesday, August 29, 2012 00:36:07 Vadim Zhukov wrote:
> 2012/8/28 Thiago Macieira <thiago at kde.org>:
> > On terça-feira, 28 de agosto de 2012 12.28.24, Vadim Zhukov wrote:
> >> See the definition of SharedLock structure in kshareddatacache_p.h.
> >> Actually, other union members will not be accessed simultaneously with
> >> spinlock, but compiler doesn't know about that.
> > 
> > I don't see the need for a union.
> > 
> > The other types aren't related to a spinlock.
> 
> The main thing there is "char unused[64]" below. The union is needed
> to keep the size of the whole structure constant. Or... is it
> impossible that there will be run two KDE-based apps with size of Qt
> atomic type simultaneously; e.g. during OS update?

It's correct that the unused[64] is the key to the union.

Since the SharedLock type (including the union) will be placed in shared 
memory it is desired that the size does that structure does not depend on the 
type of lock that is being used.

It is true that once a cache is created with a given locktype that the 
locktype will never change for that cache again, so I suppose this feature is 
not an inherent requirement. I'll look into that too I suppose.

Regards,
 - Michael Pyne
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20120828/7d99960d/attachment.sig>


More information about the kde-core-devel mailing list