summaryrefslogtreecommitdiff
path: root/merge.go
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2014-12-06 02:44:57 +0100
committerCarlos Martín Nieto <[email protected]>2014-12-06 02:45:26 +0100
commit8c631b0c25c8de616afa2fd89378299c9d9a1439 (patch)
tree4f37d5612f17bc13a0a3d1b71019711430eab0c4 /merge.go
parent0ec2f4665913a37df6f4d5704ea3a69bae2eb8b3 (diff)
Add missing thread locking
Diffstat (limited to 'merge.go')
-rw-r--r--merge.go13
1 files changed, 13 insertions, 0 deletions
diff --git a/merge.go b/merge.go
index 83a682c..285c9c5 100644
--- a/merge.go
+++ b/merge.go
@@ -39,6 +39,9 @@ func (r *Repository) AnnotatedCommitFromFetchHead(branchName string, remoteURL s
cremoteURL := C.CString(remoteURL)
defer C.free(unsafe.Pointer(cremoteURL))
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
ret := C.git_annotated_commit_from_fetchhead(&mh.ptr, r.ptr, cbranchName, cremoteURL, oid.toC())
if ret < 0 {
return nil, MakeGitError(ret)
@@ -50,6 +53,9 @@ func (r *Repository) AnnotatedCommitFromFetchHead(branchName string, remoteURL s
func (r *Repository) LookupAnnotatedCommit(oid *Oid) (*AnnotatedCommit, error) {
mh := &AnnotatedCommit{}
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
ret := C.git_annotated_commit_lookup(&mh.ptr, r.ptr, oid.toC())
if ret < 0 {
return nil, MakeGitError(ret)
@@ -61,6 +67,9 @@ func (r *Repository) LookupAnnotatedCommit(oid *Oid) (*AnnotatedCommit, error) {
func (r *Repository) AnnotatedCommitFromRef(ref *Reference) (*AnnotatedCommit, error) {
mh := &AnnotatedCommit{}
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
ret := C.git_annotated_commit_from_ref(&mh.ptr, r.ptr, ref.ptr)
if ret < 0 {
return nil, MakeGitError(ret)
@@ -98,6 +107,10 @@ func mergeOptionsFromC(opts *C.git_merge_options) MergeOptions {
func DefaultMergeOptions() (MergeOptions, error) {
opts := C.git_merge_options{}
+
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
ecode := C.git_merge_init_options(&opts, C.GIT_MERGE_OPTIONS_VERSION)
if ecode < 0 {
return MergeOptions{}, MakeGitError(ecode)