Research Article

A Study of Lock-Free Based Concurrent Garbage Collectors for Multicore Platform

Procedure 2

CopyNormalObject procedure (barrier code for mutator).
        //Modify ith field of the object
(1) newField.data:= newData
(2) newField.status:= 1
(3) loop:
(4) oldField.data:= exObj.fileds ].data
(5) oldField.status:= exObj.fileds[ ].status
(6) if CAS(&exObj.fields[ ], newField, oldField) != oldField then
(7)  goto loop;      //Retry until cas succeed