On 8/30/06, Esben Nielsen <nielsen.esben at gogglemail.com> wrote: > > > On Tue, 29 Aug 2006, Li Yang wrote: > > >> This is exactly how it is supposed to work! That's why there is a loop > >> in the atomic increment - you check if you still had the reservation > >> after the transaction by checking the result from the stwcx, and if not, > >> retry. > > > > I surely know all the theories you mentioned clearly. But please do > > look at the case I gave. Correct me if I missed anything. Thanks > > > > All the lwarx and stwcx operate on the same address. > > > >> Task A Task B > >> lwarx > > // Get RESERVATION > >> ...... > >> lwarx > >> stwcx > > > > // RESERVATION cleared > >> > >> ..... > >> ..... > >> lwarx > > > > // Get RESERVATION again > > Now we do a task switch involving atomic operations, and thus an > reservation on another address. >
This makes sense for me.