diff options
Diffstat (limited to 'walk.go')
| -rw-r--r-- | walk.go | 19 |
1 files changed, 13 insertions, 6 deletions
@@ -1,7 +1,6 @@ package git /* -#cgo pkg-config: libgit2 #include <git2.h> #include <git2/errors.h> */ @@ -9,15 +8,17 @@ import "C" import ( "io" + "runtime" ) // RevWalk +type SortType uint const ( - SORT_NONE = C.GIT_SORT_NONE - SORT_TOPOLOGICAL = C.GIT_SORT_TOPOLOGICAL - SORT_TIME = C.GIT_SORT_TIME - SORT_REVERSE = C.GIT_SORT_REVERSE + SortNone SortType = C.GIT_SORT_NONE + SortTopological = C.GIT_SORT_TOPOLOGICAL + SortTime = C.GIT_SORT_TIME + SortReverse = C.GIT_SORT_REVERSE ) type RevWalk struct { @@ -34,6 +35,9 @@ func (v *RevWalk) Push(id *Oid) { } func (v *RevWalk) PushHead() (err error) { + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ecode := C.git_revwalk_push_head(v.ptr) if ecode < 0 { err = LastError() @@ -43,6 +47,9 @@ func (v *RevWalk) PushHead() (err error) { } func (v *RevWalk) Next(oid *Oid) (err error) { + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ret := C.git_revwalk_next(oid.toC(), v.ptr) switch { case ret == ITEROVER: @@ -81,7 +88,7 @@ func (v *RevWalk) Iterate(fun RevWalkIterator) (err error) { return nil } -func (v *RevWalk) Sorting(sm uint) { +func (v *RevWalk) Sorting(sm SortType) { C.git_revwalk_sorting(v.ptr, C.uint(sm)) } |
