In a computer system that utilizes write or read barriers to perform a
garbage collection function, instruction execution logic avoids
unnecessary calls to the write or read barrier procedure. Each object's
header includes a State flag. Each object reference also includes a State
flag. Each time an instruction that is the subject of a write or read
barrier (e.g., a object reference write instruction) is executed, the
State flag of the object reference being processed is inspected by the
instruction execution logic. If the State flag in the object reference is
set, the write or read barrier procedure is not invoked, because the
target object has already been processed by a previous call to the write
or read barrier procedure. Otherwise the write or read barrier procedure
is invoked. The write or read barrier procedure first checks the State
flag in the target object's header. If it is set, the State flag in the
target object reference is set and then the procedure exits. Otherwise, if
the State flag in the target object header is not set, a predefined
garbage collection function is performed and then the State flag in the
target object's header and the State flag in the target object's reference
are both set. In some embodiments the setting of the State flags is
conditional on the outcome of the garbage collection operation performed
by the write or read barrier procedure.
Dans un système informatique qui utilise écrivez ou lisez les barrières pour exécuter une fonction de collection d'ordures, la logique d'exécution d'instruction évite des appels inutiles à l'inscription ou a lu le procédé de barrière. L'en-tête de chaque objet inclut un drapeau d'état. Chaque référence d'objet inclut également un drapeau d'état. Chaque fois que une instruction qui est le sujet d'une inscription ou la barrière lue (par exemple, une référence d'objet écrivent l'instruction) est exécutée, le drapeau d'état de la référence d'objet étant traité est inspecté par la logique d'exécution d'instruction. Si le drapeau d'état dans la référence d'objet est placé, l'inscription ou le procédé lu de barrière n'est pas appelée, parce que l'objet de cible a été déjà traité par un appel précédent à l'inscription ou au procédé lu de barrière. Autrement l'inscription ou le procédé lu de barrière est appelée. L'inscription ou les contrôles lus de procédé de barrière d'abord le drapeau d'état dans l'en-tête de l'objet de cible. S'il est placé, le drapeau d'état dans la référence d'objet de cible est placé et puis les sorties de procédé. Autrement, si le drapeau d'état dans l'en-tête d'objet de cible n'est pas placé, une fonction prédéfinie de collection d'ordures est exécutée et puis le drapeau d'état dans l'en-tête de l'objet de cible et le drapeau d'état dans la référence de l'objet de cible sont deux ensemble. Dans quelques incorporations l'arrangement des drapeaux d'état est fonction des résultats de l'opération de collection d'ordures effectuée par l'inscription ou le procédé lu de barrière.