Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
git2
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
git2
Commits
057126c6
Commit
057126c6
authored
Nov 08, 2014
by
Edward Thomson
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2637 from libgit2/cmn/global-init
Rename git_threads_ to git_libgit2_
parents
4865cc3f
799e22ea
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
88 additions
and
67 deletions
+88
-67
CHANGELOG.md
+4
-0
examples/add.c
+2
-2
examples/blame.c
+2
-2
examples/cat-file.c
+2
-2
examples/describe.c
+2
-2
examples/diff.c
+2
-2
examples/general.c
+4
-0
examples/init.c
+2
-2
examples/log.c
+2
-2
examples/network/git2.c
+1
-1
examples/rev-list.c
+2
-2
examples/rev-parse.c
+2
-2
examples/showindex.c
+2
-2
examples/status.c
+2
-2
examples/tag.c
+2
-2
include/git2.h
+1
-1
include/git2/global.h
+38
-0
include/git2/threads.h
+0
-26
src/global.c
+11
-10
src/hash/hash_win32.c
+1
-1
tests/main.c
+2
-2
tests/threads/basic.c
+2
-2
No files found.
CHANGELOG.md
View file @
057126c6
...
...
@@ -122,3 +122,7 @@ v0.21 + 1
*
The fetch behavior of remotes with autotag set to GIT_REMOTE_DOWNLOAD_TAGS_ALL
has been changed to match git 1.9.0 and later. In this mode, libgit2 now
fetches all tags in addition to whatever else needs to be fetched.
*
git_threads_init() and git_threads_shutdown() have been renamed to
git_libgit2_init() and git_libgit2_shutdown() to better explain what
their purpose is, as it's grown to be more than just about threads.
examples/add.c
View file @
057126c6
...
...
@@ -40,7 +40,7 @@ int main (int argc, char** argv)
int
options
=
0
,
count
=
0
;
struct
print_payload
payload
=
{
0
};
git_
threads
_init
();
git_
libgit2
_init
();
parse_opts
(
&
options
,
&
count
,
argc
,
argv
);
...
...
@@ -66,7 +66,7 @@ int main (int argc, char** argv)
git_index_free
(
index
);
git_repository_free
(
repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
...
...
examples/blame.c
View file @
057126c6
...
...
@@ -48,7 +48,7 @@ int main(int argc, char *argv[])
git_blob
*
blob
;
git_object
*
obj
;
git_
threads
_init
();
git_
libgit2
_init
();
parse_opts
(
&
o
,
argc
,
argv
);
if
(
o
.
M
)
blameopts
.
flags
|=
GIT_BLAME_TRACK_COPIES_SAME_COMMIT_MOVES
;
...
...
@@ -131,7 +131,7 @@ int main(int argc, char *argv[])
git_blame_free
(
blame
);
git_repository_free
(
repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
...
...
examples/cat-file.c
View file @
057126c6
...
...
@@ -127,7 +127,7 @@ int main(int argc, char *argv[])
git_object
*
obj
=
NULL
;
char
oidstr
[
GIT_OID_HEXSZ
+
1
];
git_
threads
_init
();
git_
libgit2
_init
();
parse_opts
(
&
o
,
argc
,
argv
);
...
...
@@ -190,7 +190,7 @@ int main(int argc, char *argv[])
git_object_free
(
obj
);
git_repository_free
(
repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
...
...
examples/describe.c
View file @
057126c6
...
...
@@ -145,7 +145,7 @@ int main(int argc, char **argv)
git_repository
*
repo
;
describe_options
opts
;
git_
threads
_init
();
git_
libgit2
_init
();
check_lg2
(
git_repository_open_ext
(
&
repo
,
"."
,
0
,
NULL
),
"Could not open repository"
,
NULL
);
...
...
@@ -156,7 +156,7 @@ int main(int argc, char **argv)
do_describe
(
repo
,
&
opts
);
git_repository_free
(
repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
examples/diff.c
View file @
057126c6
...
...
@@ -77,7 +77,7 @@ int main(int argc, char *argv[])
-
1
,
0
,
0
,
GIT_DIFF_FORMAT_PATCH
,
NULL
,
NULL
,
"."
};
git_
threads
_init
();
git_
libgit2
_init
();
parse_opts
(
&
o
,
argc
,
argv
);
...
...
@@ -163,7 +163,7 @@ int main(int argc, char *argv[])
git_tree_free
(
t2
);
git_repository_free
(
repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
...
...
examples/general.c
View file @
057126c6
...
...
@@ -59,6 +59,10 @@ static void check_error(int error_code, const char *action)
int
main
(
int
argc
,
char
**
argv
)
{
// Initialize the library, this will set up any global state which libgit2 needs
// including threading and crypto
git_libgit2_init
();
// ### Opening the Repository
// There are a couple of methods for opening a repository, this being the
...
...
examples/init.c
View file @
057126c6
...
...
@@ -46,7 +46,7 @@ int main(int argc, char *argv[])
git_repository
*
repo
=
NULL
;
struct
opts
o
=
{
1
,
0
,
0
,
0
,
GIT_REPOSITORY_INIT_SHARED_UMASK
,
0
,
0
,
0
};
git_
threads
_init
();
git_
libgit2
_init
();
parse_opts
(
&
o
,
argc
,
argv
);
...
...
@@ -116,7 +116,7 @@ int main(int argc, char *argv[])
}
git_repository_free
(
repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
...
...
examples/log.c
View file @
057126c6
...
...
@@ -80,7 +80,7 @@ int main(int argc, char *argv[])
git_commit
*
commit
=
NULL
;
git_pathspec
*
ps
=
NULL
;
git_
threads
_init
();
git_
libgit2
_init
();
/** Parse arguments and set up revwalker. */
...
...
@@ -180,7 +180,7 @@ int main(int argc, char *argv[])
git_pathspec_free
(
ps
);
git_revwalk_free
(
s
.
walker
);
git_repository_free
(
s
.
repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
...
...
examples/network/git2.c
View file @
057126c6
...
...
@@ -54,7 +54,7 @@ int main(int argc, char **argv)
exit
(
EXIT_FAILURE
);
}
git_
threads
_init
();
git_
libgit2
_init
();
for
(
i
=
0
;
commands
[
i
].
name
!=
NULL
;
++
i
)
{
if
(
!
strcmp
(
argv
[
1
],
commands
[
i
].
name
))
...
...
examples/rev-list.c
View file @
057126c6
...
...
@@ -24,7 +24,7 @@ int main (int argc, char **argv)
git_oid
oid
;
char
buf
[
GIT_OID_HEXSZ
+
1
];
git_
threads
_init
();
git_
libgit2
_init
();
check_lg2
(
git_repository_open_ext
(
&
repo
,
"."
,
0
,
NULL
),
"opening repository"
,
NULL
);
check_lg2
(
git_revwalk_new
(
&
walk
,
repo
),
"allocating revwalk"
,
NULL
);
...
...
@@ -36,7 +36,7 @@ int main (int argc, char **argv)
printf
(
"%s
\n
"
,
buf
);
}
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
...
...
examples/rev-parse.c
View file @
057126c6
...
...
@@ -29,13 +29,13 @@ int main(int argc, char *argv[])
{
struct
parse_state
ps
=
{
0
};
git_
threads
_init
();
git_
libgit2
_init
();
parse_opts
(
&
ps
,
argc
,
argv
);
check_lg2
(
parse_revision
(
&
ps
),
"Parsing"
,
NULL
);
git_repository_free
(
ps
.
repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
...
...
examples/showindex.c
View file @
057126c6
...
...
@@ -23,7 +23,7 @@ int main (int argc, char** argv)
char
out
[
GIT_OID_HEXSZ
+
1
];
out
[
GIT_OID_HEXSZ
]
=
'\0'
;
git_
threads
_init
();
git_
libgit2
_init
();
if
(
argc
>
2
)
fatal
(
"usage: showindex [<repo-dir>]"
,
NULL
);
...
...
@@ -64,7 +64,7 @@ int main (int argc, char** argv)
}
git_index_free
(
index
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
examples/status.c
View file @
057126c6
...
...
@@ -73,7 +73,7 @@ int main(int argc, char *argv[])
git_status_list
*
status
;
struct
opts
o
=
{
GIT_STATUS_OPTIONS_INIT
,
"."
};
git_
threads
_init
();
git_
libgit2
_init
();
o
.
statusopt
.
show
=
GIT_STATUS_SHOW_INDEX_AND_WORKDIR
;
o
.
statusopt
.
flags
=
GIT_STATUS_OPT_INCLUDE_UNTRACKED
|
...
...
@@ -135,7 +135,7 @@ show_status:
}
git_repository_free
(
repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
...
...
examples/tag.c
View file @
057126c6
...
...
@@ -300,7 +300,7 @@ int main(int argc, char **argv)
tag_action
action
;
tag_state
state
;
git_
threads
_init
();
git_
libgit2
_init
();
check_lg2
(
git_repository_open_ext
(
&
repo
,
"."
,
0
,
NULL
),
"Could not open repository"
,
NULL
);
...
...
@@ -313,7 +313,7 @@ int main(int argc, char **argv)
action
(
&
state
);
git_repository_free
(
repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
0
;
}
include/git2.h
View file @
057126c6
...
...
@@ -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"
...
...
include/git2/global.h
0 → 100644
View file @
057126c6
/*
* 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
include/git2/threads.h
View file @
057126c6
...
...
@@ -19,32 +19,6 @@
GIT_BEGIN_DECL
/**
* Init the threading system.
*
* If libgit2 has been built with GIT_THREADS
* on, this function must be called once before
* any other library functions.
*
* If libgit2 has been built without GIT_THREADS
* support, this function is a no-op.
*
* @return 0 or an error code
*/
GIT_EXTERN
(
int
)
git_threads_init
(
void
);
/**
* Shutdown the threading system.
*
* If libgit2 has been built with GIT_THREADS
* on, this function must be called before shutting
* down the library.
*
* If libgit2 has been built without GIT_THREADS
* support, this function is a no-op.
*/
GIT_EXTERN
(
void
)
git_threads_shutdown
(
void
);
/**
* Initialize the OpenSSL locks
*
* OpenSSL requires the application to determine how it performs
...
...
src/global.c
View file @
057126c6
...
...
@@ -9,6 +9,7 @@
#include "hash.h"
#include "sysdir.h"
#include "git2/threads.h"
#include "git2/global.h"
#include "thread-utils.h"
...
...
@@ -133,7 +134,7 @@ int git_openssl_set_locking(void)
* Handle the global state with TLS
*
* If libgit2 is built with GIT_THREADS enabled,
* the `git_
threads
_init()` function must be called
* the `git_
libgit2
_init()` function must be called
* before calling any other function of the library.
*
* This function allocates a TLS index (using pthreads
...
...
@@ -146,7 +147,7 @@ int git_openssl_set_locking(void)
* allocated on each thread.
*
* Before shutting down the library, the
* `git_
threads
_shutdown` method must be called to free
* `git_
libgit2
_shutdown` method must be called to free
* the previously reserved TLS index.
*
* If libgit2 is built without threading support, the
...
...
@@ -156,9 +157,9 @@ int git_openssl_set_locking(void)
*/
/*
* `git_
threads
_init()` allows subsystems to perform global setup,
* `git_
libgit2
_init()` allows subsystems to perform global setup,
* which may take place in the global scope. An explicit memory
* fence exists at the exit of `git_
threads
_init()`. Without this,
* fence exists at the exit of `git_
libgit2
_init()`. Without this,
* CPU cores are free to reorder cache invalidation of `_tls_init`
* before cache invalidation of the subsystems' newly written global
* state.
...
...
@@ -185,7 +186,7 @@ static int synchronized_threads_init(void)
return
error
;
}
int
git_
threads
_init
(
void
)
int
git_
libgit2
_init
(
void
)
{
int
error
=
0
;
...
...
@@ -210,7 +211,7 @@ static void synchronized_threads_shutdown(void)
git_mutex_free
(
&
git__mwindow_mutex
);
}
void
git_
threads
_shutdown
(
void
)
void
git_
libgit2
_shutdown
(
void
)
{
/* Enter the lock */
while
(
InterlockedCompareExchange
(
&
_mutex
,
1
,
0
))
{
Sleep
(
0
);
}
...
...
@@ -272,14 +273,14 @@ static void init_once(void)
GIT_MEMORY_BARRIER
;
}
int
git_
threads
_init
(
void
)
int
git_
libgit2
_init
(
void
)
{
pthread_once
(
&
_once_init
,
init_once
);
git_atomic_inc
(
&
git__n_inits
);
return
init_error
;
}
void
git_
threads
_shutdown
(
void
)
void
git_
libgit2
_shutdown
(
void
)
{
void
*
ptr
=
NULL
;
pthread_once_t
new_once
=
PTHREAD_ONCE_INIT
;
...
...
@@ -320,7 +321,7 @@ git_global_st *git__global_state(void)
static
git_global_st
__state
;
int
git_
threads
_init
(
void
)
int
git_
libgit2
_init
(
void
)
{
static
int
ssl_inited
=
0
;
...
...
@@ -333,7 +334,7 @@ int git_threads_init(void)
return
0
;
}
void
git_
threads
_shutdown
(
void
)
void
git_
libgit2
_shutdown
(
void
)
{
/* Shut down any subsystems that have global state */
if
(
0
==
git_atomic_dec
(
&
git__n_inits
))
...
...
src/hash/hash_win32.c
View file @
057126c6
...
...
@@ -236,7 +236,7 @@ int git_hash_ctx_init(git_hash_ctx *ctx)
/*
* When compiled with GIT_THREADS, the global hash_prov data is
* initialized with git_
threads
_init. Otherwise, it must be initialized
* initialized with git_
libgit2
_init. Otherwise, it must be initialized
* at first use.
*/
if
(
hash_prov
.
type
==
INVALID
&&
(
error
=
git_hash_global_init
())
<
0
)
...
...
tests/main.c
View file @
057126c6
...
...
@@ -10,7 +10,7 @@ int main(int argc, char *argv[])
clar_test_init
(
argc
,
argv
);
git_
threads
_init
();
git_
libgit2
_init
();
cl_sandbox_set_search_path_defaults
();
/* Run the test suite */
...
...
@@ -19,7 +19,7 @@ int main(int argc, char *argv[])
clar_test_shutdown
();
giterr_clear
();
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
return
res
;
}
tests/threads/basic.c
View file @
057126c6
...
...
@@ -27,11 +27,11 @@ void test_threads_basic__multiple_init(void)
{
git_repository
*
nested_repo
;
git_
threads
_init
();
git_
libgit2
_init
();
cl_git_pass
(
git_repository_open
(
&
nested_repo
,
cl_fixture
(
"testrepo.git"
)));
git_repository_free
(
nested_repo
);
git_
threads
_shutdown
();
git_
libgit2
_shutdown
();
cl_git_pass
(
git_repository_open
(
&
nested_repo
,
cl_fixture
(
"testrepo.git"
)));
git_repository_free
(
nested_repo
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment