LockOSThread in CurrentOperationIndex for git error creation
diff --git a/rebase.go b/rebase.go
index 8384d68..8553e25 100644
--- a/rebase.go
+++ b/rebase.go
@@ -145,16 +145,21 @@
// OperationAt gets the rebase operation specified by the given index.
func (rebase *Rebase) OperationAt(index uint) *RebaseOperation {
operation := C.git_rebase_operation_byindex(rebase.ptr, C.size_t(index))
+
return newRebaseOperationFromC(operation)
}
// CurrentOperationIndex gets the index of the rebase operation that is currently being applied.
// Returns an error if no rebase operation is currently applied.
func (rebase *Rebase) CurrentOperationIndex() (uint, error) {
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
operationIndex := int(C.git_rebase_operation_current(rebase.ptr))
if operationIndex == C.GIT_REBASE_NO_OPERATION {
return 0, MakeGitError(C.GIT_REBASE_NO_OPERATION)
}
+
return uint(operationIndex), nil
}
diff --git a/rebase_test.go b/rebase_test.go
index 9c8e0c2..fb88a4e 100644
--- a/rebase_test.go
+++ b/rebase_test.go
@@ -9,29 +9,6 @@
// Tests
-func TestDefaultRebaseOptions(t *testing.T) {
- opts, err := DefaultRebaseOptions()
- checkFatal(t, err)
-
- if opts.Version != 1 {
- t.Error("Expected opts Version to equal 1, got ", opts.Version)
- }
- if opts.Quiet != 0 {
- t.Error("Expected opts Quiet to equal 1, got ", opts.Quiet)
- }
- if opts.InMemory != 0 {
- t.Error("Expected opts InMemory to equal 1, got ", opts.InMemory)
- }
- if opts.RewriteNotesRef != "" {
- t.Error("Expected opts RewriteNotesRef to equal 1, got ", opts.RewriteNotesRef)
- }
-
- copts := opts.toC()
- if copts == nil {
- t.Error("Copts should not be nil")
- }
-}
-
func TestRebaseAbort(t *testing.T) {
// TEST DATA