mesh-issues: resume an interrupted carry by revision and fault one issue instead of the whole start, so no kept value is lost and the tracker always starts (review of PR 228)
mesh/merge-gate pass: builds mesh-issues → novox; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery delivered
mesh/merge-gate pass: builds mesh-issues → novox; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery delivered
An open's lost answer is judged by the issue's first entry; an entry that does not fold faults its issue on start; a value written beside the log is never folded over; one issue is kept in at most 252 KiB so its whole operation fits a log entry.
This commit is contained in:
@@ -85,7 +85,10 @@ func (h *memoryView) drop(n uint64) {
|
||||
}
|
||||
}
|
||||
|
||||
// all is every issue held, each a copy of its fields: a caller that changes one changes nothing held.
|
||||
// all is every issue held, each a shallow copy: a caller may set an issue's fields without changing what is held,
|
||||
// but its lists (notes, links, fixes and the rest) are shared with what is held, so a caller reads them and never
|
||||
// changes them in place. Every caller in this module only reads; a write goes through change, which reads the
|
||||
// bucket afresh. A deep copy per list would cost a JSON round trip of every issue on every list.
|
||||
func (h *memoryView) all() map[uint64]*Issue {
|
||||
h.mu.RLock()
|
||||
defer h.mu.RUnlock()
|
||||
|
||||
Reference in New Issue
Block a user