Fast implementation of Git in pure Go codeberg.org/lindenii/furgit
git go
6
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

Runxi Yu 2006e2e0 e3de5932

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