summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/git2.h2
-rw-r--r--include/git2/global.h38
2 files changed, 39 insertions, 1 deletions
diff --git a/include/git2.h b/include/git2.h
index 41adbbad2..388cd82d0 100644
--- a/include/git2.h
+++ b/include/git2.h
@@ -56,7 +56,7 @@
#include "git2/status.h"
#include "git2/submodule.h"
#include "git2/tag.h"
-#include "git2/threads.h"
+#include "git2/global.h"
#include "git2/transport.h"
#include "git2/tree.h"
#include "git2/types.h"
diff --git a/include/git2/global.h b/include/git2/global.h
new file mode 100644
index 000000000..4f90c4c20
--- /dev/null
+++ b/include/git2/global.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) the libgit2 contributors. All rights reserved.
+ *
+ * This file is part of libgit2, distributed under the GNU GPL v2 with
+ * a Linking Exception. For full terms see the included COPYING file.
+ */
+#ifndef INCLUDE_git_global_h__
+#define INCLUDE_git_global_h__
+
+#include "common.h"
+
+GIT_BEGIN_DECL
+
+/**
+ * Init the global state
+ *
+ * This function must the called before any other libgit2 function in
+ * order to set up global state and threading.
+ *
+ * This function may be called multiple times.
+ *
+ * @return 0 or an error code
+ */
+GIT_EXTERN(int) git_libgit2_init(void);
+
+/**
+ * Shutdown the global state
+ *
+ * Clean up the global state and threading context after calling it as
+ * many times as `git_libgit2_init()` was called.
+ *
+ */
+GIT_EXTERN(void) git_libgit2_shutdown(void);
+
+/** @} */
+GIT_END_DECL
+#endif
+