This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: atomic accesses


I'm really wondering why this is being considered.

A documented property of the form "GCC will use a single instruction
to do X when possible" means exactly nothing.  In particular, to call
such a statement a "guarantee" is seriously misleading.

If Linux needs the single-instruction property for atomicity, and it
thinks it can rely on this supposed property, then Linux has a bug.
To do atomic operations, you have to use primitives that are
guaranteed always to have the necessary atomicity properties.
Typically those would be found in asm statements.

I suspect it would be valuable to have standardized primitives for
atomic actions (semaphores, spinlocks, test-and-set primitives,
circular buffers, pick one).  But GCC's load/store semantics are not
those primitives, with or without a documented "single instruction
when possible" property.  

   paul



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]