summaryrefslogtreecommitdiff
path: root/checkout.go
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2013-12-18 07:19:02 -0800
committerCarlos Martín Nieto <[email protected]>2013-12-18 07:19:02 -0800
commit66e1c476199ebcd3e304659992233132c5a52c6c (patch)
tree115fcae49287c82eb55bb275cbbd4556fbed72b7 /checkout.go
parent625ffd022e2c39f3820543cc1239deeb21837266 (diff)
parenta40bdfd4202db244bfc5da348a0f0c528ef122cd (diff)
Merge pull request #41 from libgit2/cmn/threading
Lock the OS thread when acessing errors
Diffstat (limited to 'checkout.go')
-rw-r--r--checkout.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/checkout.go b/checkout.go
index 63637e2..f4c1d4e 100644
--- a/checkout.go
+++ b/checkout.go
@@ -9,6 +9,7 @@ git_checkout_opts git_checkout_opts_init() {
*/
import "C"
import (
+ "runtime"
"os"
)
@@ -59,6 +60,9 @@ func (v *Repository) Checkout(opts *CheckoutOpts) error {
var copts C.git_checkout_opts
populateCheckoutOpts(&copts, opts)
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
ret := C.git_checkout_head(v.ptr, &copts)
if ret < 0 {
return LastError()
@@ -72,6 +76,9 @@ func (v *Repository) CheckoutIndex(index *Index, opts *CheckoutOpts) error {
var copts C.git_checkout_opts
populateCheckoutOpts(&copts, opts)
+ runtime.LockOSThread()
+ defer runtime.UnlockOSThread()
+
ret := C.git_checkout_index(v.ptr, index.ptr, &copts)
if ret < 0 {
return LastError()