On Thu, Mar 01, 2001 at 08:58:03PM -0500, Jeff Trawick wrote:
> Greg Stein <[EMAIL PROTECTED]> writes:
> 
> > I once tried to created a lock-less linked-list for managing some thread
> > state stuff in Python. I believe that it finally came to a point where I had
> > a simple proof that you just can't implement a read/write linked list in a
> > multi-threaded environemnt without a lock. Beats me if I can remember the
> > key point, though.
> 
> As long as reasonable restrictions are placed on allowable list
> operations (restrictions which are not a problem when the list is used
> to maintain a free pool) you can implement a lock-free linked list.
> Been there, done that.  On S/390 we commonly use a double-word
> compare-and-swap operation.  Other platforms have this as well.
> Different instructions are available on still more platforms.

I'm talking about pure C code. Of course you can do it with VAX architecture
bit twiddling, or compare-and-swap, or test-and-set, or atomic increments or
whatever. But those facilities are not available to "plain old C."

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

Reply via email to