Research Article
A Study of Lock-Free Based Concurrent Garbage Collectors for Multicore Platform
Procedure 4
CopyExtendedObject procedure (barrier code for mutator).
//Modify ith field of the object | (1) loop: | (2) currStatus:= obj.Fields[].status | (3) if currStatus = 1 then | (4) oldField.status:= currStatus | (5) oldField.data:= obj.Fields[].data | (6) newField.data:= newData | (7) newField.status:= 1 | (8) if CAS(&obj.Fields[], newField, oldField) != oldField then | (9) goto loop | (10) else | (11) norObj.Fileds[].data:= newData |
|