Function sequant::eval::table_read¶
Defined in File cell_registry.hpp
Function Documentation¶
-
inline TableRead sequant::eval::table_read(CellRegistry ®, CellId source)¶
The ownership half of one table-driven read of
source:spend one life ofsourceinregand report whether that read spent the cell’s last life.CellReadResolver::fetchcalls it for a consumer’s operand reads; anAssemblestep reads itsproduction.sourcethroughCellRegistry::readdirectly, for the same accounting. A read served from somewhere other than the registry would still owe the table that life: skipping it leaves the source holding a fully consumed buffer, which pins the memory and makes every later reader see the value as shared.CellReadResolver::fetchdoes not consultTableRead::exhausteditself (CellReadResolver::operand_drainedre-derives in-place eligibility straight fromCellRegistry::drainedinstead); an Assemble step does, to decide whether the partial it just read is its own to accumulate into (seeCellRegistry::read'soverload).