Research Article
A Study of Lock-Free Based Concurrent Garbage Collectors for Multicore Platform
Procedure 1
CopyNormalObject procedure (procedure code for collector).
Procedure CopyNormalObject(obj: Object, addr: Address) | (1) exObj:= AllocExtendedObject(addr) | (2) for each status in exObj do | (3) status:= 0 | (4) for := 0 to CountOfFields(obj) do | (5) oldField.data:= exObj.fields[].data | (6) oldField.status:= exObj.fields[].status | (7) if oldField.status = 0 then | (8) newField.data:= obj.fields[].data | (9) newField.status:= 1 | (10) CAS(&exObj.fields[], newField, oldField) |
|