shithub: furgit

Download patch

ref: 2006e2e07f073a79a84194a304e4958a8739d645
parent: e3de5932e7f2296c59804576746a3ff28c59b736
author: Runxi Yu <runxiyu@umich.edu>
date: Sun Mar 29 09:26:10 EDT 2026

format/commitgraph: Remove MT-ReadSafe; use MT-Safe/Unsafe

--- a/format/commitgraph/read/bloom.go
+++ b/format/commitgraph/read/bloom.go
@@ -8,6 +8,8 @@
 )
 
 // HasBloom reports whether any layer has changed-path Bloom data.
+//
+// Labels: MT-Safe.
 func (reader *Reader) HasBloom() bool {
 	for i := range reader.layers {
 		layer := &reader.layers[i]
@@ -20,6 +22,8 @@
 }
 
 // BloomVersion returns the changed-path Bloom hash version, or 0 if absent.
+//
+// Labels: MT-Safe.
 func (reader *Reader) BloomVersion() uint8 {
 	for i := len(reader.layers) - 1; i >= 0; i-- {
 		layer := &reader.layers[i]
@@ -43,7 +47,7 @@
 //
 // Returns BloomUnavailableError when this commit graph has no Bloom data.
 //
-// Labels: Life-Parent.
+// Labels: MT-Safe, Life-Parent.
 func (reader *Reader) BloomFilterAt(pos Position) (bloom.Filter, error) {
 	layer, err := reader.layerByPosition(pos)
 	if err != nil {
--- a/format/commitgraph/read/commitat.go
+++ b/format/commitgraph/read/commitat.go
@@ -9,7 +9,7 @@
 
 // CommitAt returns decoded commit-graph metadata at one position.
 //
-// Labels: Life-Independent.
+// Labels: MT-Safe, Life-Independent.
 func (reader *Reader) CommitAt(pos Position) (Commit, error) {
 	layer, err := reader.layerByPosition(pos)
 	if err != nil {
--- a/format/commitgraph/read/commits.go
+++ b/format/commitgraph/read/commits.go
@@ -15,6 +15,8 @@
 }
 
 // NumCommits returns total commits across loaded layers.
+//
+// Labels: MT-Safe.
 func (reader *Reader) NumCommits() uint32 {
 	return reader.total
 }
--- a/format/commitgraph/read/hash.go
+++ b/format/commitgraph/read/hash.go
@@ -9,6 +9,8 @@
 )
 
 // HashVersion returns the commit-graph hash version.
+//
+// Labels: MT-Safe.
 func (reader *Reader) HashVersion() uint8 {
 	return reader.hashVersion
 }
--- a/format/commitgraph/read/iterators.go
+++ b/format/commitgraph/read/iterators.go
@@ -9,7 +9,7 @@
 
 // AllPositions iterates all commit positions in native layer order.
 //
-// Labels: Life-Parent.
+// Labels: MT-Safe, Life-Parent.
 func (reader *Reader) AllPositions() iter.Seq[Position] {
 	return func(yield func(Position) bool) {
 		for layerIdx := range reader.layers {
@@ -31,7 +31,7 @@
 
 // AllOIDs iterates all commit object IDs in native layer order.
 //
-// Labels: Life-Parent.
+// Labels: MT-Safe, Life-Parent.
 func (reader *Reader) AllOIDs() iter.Seq[objectid.ObjectID] {
 	return func(yield func(objectid.ObjectID) bool) {
 		positions := reader.AllPositions()
--- a/format/commitgraph/read/layerinfo.go
+++ b/format/commitgraph/read/layerinfo.go
@@ -9,7 +9,7 @@
 
 // Layers returns loaded layer metadata in native chain order.
 //
-// Labels: Life-Independent.
+// Labels: MT-Safe, Life-Independent.
 func (reader *Reader) Layers() []LayerInfo {
 	out := make([]LayerInfo, 0, len(reader.layers))
 	for i := range reader.layers {
--- a/format/commitgraph/read/lookup.go
+++ b/format/commitgraph/read/lookup.go
@@ -6,6 +6,8 @@
 )
 
 // Lookup resolves one object ID to one graph position.
+//
+// Labels: MT-Safe.
 func (reader *Reader) Lookup(oid objectid.ObjectID) (Position, error) {
 	if oid.Algorithm() != reader.algo {
 		return Position{}, &NotFoundError{OID: oid}
--- a/format/commitgraph/read/oidat.go
+++ b/format/commitgraph/read/oidat.go
@@ -7,7 +7,7 @@
 
 // OIDAt returns object ID at one position.
 //
-// Labels: Life-Independent.
+// Labels: MT-Safe, Life-Independent.
 func (reader *Reader) OIDAt(pos Position) (objectid.ObjectID, error) {
 	layer, err := reader.layerByPosition(pos)
 	if err != nil {
--- a/format/commitgraph/read/reader.go
+++ b/format/commitgraph/read/reader.go
@@ -4,7 +4,7 @@
 
 // Reader provides read-only access to one mmap-backed commit-graph snapshot.
 //
-// Labels: MT-ReadSafe, Close-Caller.
+// Labels: MT-Safe, Close-Caller.
 type Reader struct {
 	algo        objectid.Algorithm
 	hashVersion uint8
--- a/furgit.go
+++ b/furgit.go
@@ -27,7 +27,6 @@
 // Concurrency labels:
 //
 //   - MT-Safe: safe for concurrent use.
-//   - MT-ReadSafe: safe for concurrent read-only use.
 //   - MT-Unsafe: not safe for concurrent use without external synchronization.
 //
 // Dependency labels:
--