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 /tree.go | |
| parent | e6865861496daef507dc08fa14a22a74269df211 (diff) | |
| parent | 66e1c476199ebcd3e304659992233132c5a52c6c (diff) | |
Merge branch 'master' into custom_odb
Diffstat (limited to 'tree.go')
| -rw-r--r-- | tree.go | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -62,6 +62,9 @@ func (t Tree) EntryByPath(path string) (*TreeEntry, error) { defer C.free(unsafe.Pointer(cpath)) var entry *C.git_tree_entry + runtime.LockOSThread() + defer runtime.UnlockOSThread() + ret := C.git_tree_entry_bypath(&entry, t.ptr, cpath) if ret < 0 { return nil, LastError() @@ -96,6 +99,9 @@ func CallbackGitTreeWalk(_root unsafe.Pointer, _entry unsafe.Pointer, ptr unsafe } func (t Tree) Walk(callback TreeWalkCallback) error { + runtime.LockOSThread() + defer runtime.UnlockOSThread() + err := C._go_git_treewalk( t.ptr, C.GIT_TREEWALK_PRE, @@ -123,6 +129,9 @@ func (v *TreeBuilder) Insert(filename string, id *Oid, filemode int) (error) { cfilename := C.CString(filename) defer C.free(unsafe.Pointer(cfilename)) + runtime.LockOSThread() + defer runtime.UnlockOSThread() + err := C.git_treebuilder_insert(nil, v.ptr, cfilename, id.toC(), C.git_filemode_t(filemode)) if err < 0 { return LastError() @@ -133,6 +142,10 @@ func (v *TreeBuilder) Insert(filename string, id *Oid, filemode int) (error) { func (v *TreeBuilder) Write() (*Oid, error) { oid := new(Oid) + + runtime.LockOSThread() + defer runtime.UnlockOSThread() + err := C.git_treebuilder_write(oid.toC(), v.repo.ptr, v.ptr) if err < 0 { |
