public void clean(ObjID[] ids,long sequenceNum,VMID vmid,boolean strong){
  for (  ObjID id : ids) {
    if (dgcLog.isLoggable(Log.VERBOSE)) {
      dgcLog.log(Log.VERBOSE,"id = " + id + ", vmid = "+ vmid+ ", strong = "+ strong);
    }
    ObjectTable.unreferenced(id,sequenceNum,vmid,strong);
  }
}

public void clean ( ObjID [ ] ids , long sequenceNum , VMID vmid , boolean strong ) { for ( ObjID id : ids ) { if ( dgcLog . isLoggable ( Log . VERBOSE ) ) { dgcLog . log ( Log . VERBOSE , "id = " + id + ", vmid = " + vmid + ", strong = " + strong ) ; } ObjectTable . unreferenced ( id , sequenceNum , vmid , strong ) ; } }
the clean call removes the vmid from the set of clients that hold references to the object associated with the liveref ref . the sequence number is used to detect late clean calls . if the argument " strong " is true , then the clean call is a result of a failed " dirty " call , thus the sequence number for the vmid needs to be remembered until the client goes away .
