1. Introduction
Non-blocking synchronization is a problem that programmers of real-time systems have been dealing with for years. Now, this problem is becoming mainstream as companies are being funded based on these technologies [15]. The usual method of synchronization is to use a lock-based approach that might include constructs such as a mutex. We can allow for more concurrency by choosing to use a non-blocking approach which does not employ any software locks.