Skip to content

Add clone_at2 and fetch2 #731

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 15 commits into
base: master
Choose a base branch
from
Open

Add clone_at2 and fetch2 #731

wants to merge 15 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Jan 5, 2018

Current version of clone_at and fetch dont release GVL when transfering data between client and server, so I just simply dup clone_at and fetch to remove their GVL and rename to clone_at2 and fetch2.

Limit:
The internal data structure in libgit2 is not protected by locks so dont use these APIs in mutlithread.

@arthurschreiber
Copy link
Member

Have you seen that there is a rb_thread_call_with_gvl which allows reaquiring the GVL to call ruby C-API functions again? I think using that you could keep the push notification callback behaviour as-is and not require khash.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants