diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2014-09-10 18:28:19 +0200 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2014-09-14 00:39:07 +0200 |
commit | fdea219a86d12c802b8d7fa73445940770bb1b61 (patch) | |
tree | c66d5a941c71e3b96032882394c9987d490e0a79 /tests/threads | |
parent | 31e752b6546537bbeee89b6d2f3027cf0eff9a53 (diff) | |
download | libgit2-fdea219a86d12c802b8d7fa73445940770bb1b61.tar.gz |
global: free the error message when exiting a threadcmn/free-tls-error
When we free the global state at thread termination, we must also free
the error message in order not to leak the string once per thread.
Diffstat (limited to 'tests/threads')
-rw-r--r-- | tests/threads/basic.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/threads/basic.c b/tests/threads/basic.c index a329ee7f9..eb15293c7 100644 --- a/tests/threads/basic.c +++ b/tests/threads/basic.c @@ -1,5 +1,6 @@ #include "clar_libgit2.h" +#include "thread_helpers.h" #include "cache.h" @@ -34,3 +35,16 @@ void test_threads_basic__multiple_init(void) cl_git_pass(git_repository_open(&nested_repo, cl_fixture("testrepo.git"))); git_repository_free(nested_repo); } + +static void *set_error(void *dummy) +{ + giterr_set(GITERR_INVALID, "oh no, something happened!\n"); + + return dummy; +} + +/* Set errors so we can check that we free it */ +void test_threads_basic__set_error(void) +{ + run_in_parallel(1, 4, set_error, NULL, NULL); +} |