RE: [patch] spinlocks: remove 'volatile'

David Schwartz
2006-07-09T19:16:17Z

> Volatile is useful for non device driver work, for example VJ-style
> channels. A portable volatile can help to code such things in a
> compiler-neutral and platform-neutral way. Linux doesn't care about
> compiler neutrality, being coded in GNU C, and about platform
> neutrality, having a per-arch abstraction layer, but other programs may
> wish to run on multiple compilers and multiple platforms without
> per-platform glue layers.

There is a portable volatile, it's called 'pthread_mutex_lock'. It allows
you to code such things in a compiler-neutral and platform-neutral way. You
don't have to worry about what the compiler might do, what the hardware
might do, what atomic operations the CPU supports, or anything like that.
The atomicity issues I've mentioned in my other posts make any attempt at
creating a 'portable volatile' for shared memory more or less doomed from
the start.

DS