diff options
| author | Aidan Nulman <[email protected]> | 2014-01-28 22:49:55 -0500 |
|---|---|---|
| committer | Aidan Nulman <[email protected]> | 2014-01-28 22:49:55 -0500 |
| commit | f610cf25d71d44881b31157832b49e793efc2d56 (patch) | |
| tree | fd96328d36655b7072651a042c888369e7e12c48 /repository.go | |
| parent | e6865861496daef507dc08fa14a22a74269df211 (diff) | |
| parent | 66e1c476199ebcd3e304659992233132c5a52c6c (diff) | |
Merge branch 'master' into custom_odb
Diffstat (limited to 'repository.go')
| -rw-r--r-- | repository.go | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/repository.go b/repository.go index 4bd8cc2..8c6e8f8 100644 --- a/repository.go +++ b/repository.go @@ -21,6 +21,9 @@ func OpenRepository(path string) (*Repository, error) { cpath := C.CString(path) defer C.free(unsafe.Pointer(cpath)) + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ret := C.git_repository_open(&repo.ptr, cpath) if ret < 0 { return nil, LastError() @@ -36,6 +39,9 @@ func InitRepository(path string, isbare bool) (*Repository, error) { cpath := C.CString(path) defer C.free(unsafe.Pointer(cpath)) + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ret := C.git_repository_init(&repo.ptr, cpath, ucbool(isbare)) if ret < 0 { return nil, LastError() @@ -65,6 +71,9 @@ func (v *Repository) Free() { func (v *Repository) Config() (*Config, error) { config := new(Config) + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ret := C.git_repository_config(&config.ptr, v.ptr) if ret < 0 { return nil, LastError() @@ -76,6 +85,10 @@ func (v *Repository) Config() (*Config, error) { func (v *Repository) Index() (*Index, error) { var ptr *C.git_index + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ret := C.git_repository_index(&ptr, v.ptr) if ret < 0 { return nil, LastError() @@ -86,6 +99,10 @@ func (v *Repository) Index() (*Index, error) { func (v *Repository) lookupType(oid *Oid, t ObjectType) (Object, error) { var ptr *C.git_object + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ret := C.git_object_lookup(&ptr, v.ptr, oid.toC(), C.git_otype(t)) if ret < 0 { return nil, LastError() @@ -130,6 +147,9 @@ func (v *Repository) LookupReference(name string) (*Reference, error) { defer C.free(unsafe.Pointer(cname)) var ptr *C.git_reference + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ecode := C.git_reference_lookup(&ptr, v.ptr, cname) if ecode < 0 { return nil, LastError() @@ -143,6 +163,9 @@ func (v *Repository) CreateReference(name string, oid *Oid, force bool) (*Refere defer C.free(unsafe.Pointer(cname)) var ptr *C.git_reference + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ecode := C.git_reference_create(&ptr, v.ptr, cname, oid.toC(), cbool(force)) if ecode < 0 { return nil, LastError() @@ -158,6 +181,9 @@ func (v *Repository) CreateSymbolicReference(name, target string, force bool) (* defer C.free(unsafe.Pointer(ctarget)) var ptr *C.git_reference + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ecode := C.git_reference_symbolic_create(&ptr, v.ptr, cname, ctarget, cbool(force)) if ecode < 0 { return nil, LastError() @@ -168,6 +194,10 @@ func (v *Repository) CreateSymbolicReference(name, target string, force bool) (* func (v *Repository) Walk() (*RevWalk, error) { walk := new(RevWalk) + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ecode := C.git_revwalk_new(&walk.ptr, v.ptr) if ecode < 0 { return nil, LastError() @@ -208,6 +238,9 @@ func (v *Repository) CreateCommit( committerSig := committer.toC() defer C.git_signature_free(committerSig) + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ret := C.git_commit_create( oid.toC(), v.ptr, cref, authorSig, committerSig, @@ -227,6 +260,10 @@ func (v *Odb) Free() { func (v *Repository) Odb() (odb *Odb, err error) { odb = new(Odb) + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + if ret := C.git_repository_odb(&odb.ptr, v.ptr); ret < 0 { return nil, LastError() } @@ -251,6 +288,9 @@ func (repo *Repository) SetWorkdir(workdir string, updateGitlink bool) error { cstr := C.CString(workdir) defer C.free(unsafe.Pointer(cstr)) + runtime.LockOSThread() + defer runtime.UnlockOSThread() + if C.git_repository_set_workdir(repo.ptr, cstr, cbool(updateGitlink)) < 0 { return LastError() } @@ -259,6 +299,10 @@ func (repo *Repository) SetWorkdir(workdir string, updateGitlink bool) error { func (v *Repository) TreeBuilder() (*TreeBuilder, error) { bld := new(TreeBuilder) + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + if ret := C.git_treebuilder_create(&bld.ptr, nil); ret < 0 { return nil, LastError() } @@ -273,6 +317,10 @@ func (v *Repository) RevparseSingle(spec string) (Object, error) { defer C.free(unsafe.Pointer(cspec)) var ptr *C.git_object + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ecode := C.git_revparse_single(&ptr, v.ptr, cspec) if ecode < 0 { return nil, LastError() |
