summaryrefslogtreecommitdiff
path: root/src/remote.c
diff options
context:
space:
mode:
authorCarlos Martín Nieto <cmn@elego.de>2012-10-18 04:31:03 +0200
committerCarlos Martín Nieto <cmn@elego.de>2012-10-18 04:31:03 +0200
commitf0d2ddbbf86ee9a3fdb0b882077a6792d5fb5d7f (patch)
tree116133f7379f2232fa5744247ce7b21b7324f455 /src/remote.c
parent4c47a8bcfe03c42096b74d4af06ab95fb95fd211 (diff)
downloadlibgit2-f0d2ddbbf86ee9a3fdb0b882077a6792d5fb5d7f.tar.gz
remote: support fetch cancelation
Introduce git_remote_stop() which sets a variable that is checked by the fetch process in a few key places. If this is variable is set, the fetch is aborted.
Diffstat (limited to 'src/remote.c')
-rw-r--r--src/remote.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/remote.c b/src/remote.c
index b73af0128..c47f2d1ec 100644
--- a/src/remote.c
+++ b/src/remote.c
@@ -558,6 +558,11 @@ int git_remote_connected(git_remote *remote)
return remote->transport == NULL ? 0 : remote->transport->connected;
}
+void git_remote_stop(git_remote *remote)
+{
+ git_atomic_set(&remote->transport->cancel, 1);
+}
+
void git_remote_disconnect(git_remote *remote)
{
assert(remote);