Commit aef54a46 by Carlos Martín Nieto

refdb: use a constant for the number of per-thread creations/deletes

parent ce5553d4
...@@ -18,6 +18,8 @@ void test_threads_refdb__cleanup(void) ...@@ -18,6 +18,8 @@ void test_threads_refdb__cleanup(void)
#define REPEAT 20 #define REPEAT 20
#define THREADS 20 #define THREADS 20
/* Number of references to create or delete in each thread */
#define NREFS 10
struct th_data { struct th_data {
int id; int id;
...@@ -59,7 +61,7 @@ static void *create_refs(void *arg) ...@@ -59,7 +61,7 @@ static void *create_refs(void *arg)
struct th_data *data = (struct th_data *) arg; struct th_data *data = (struct th_data *) arg;
git_oid head; git_oid head;
char name[128]; char name[128];
git_reference *ref[10]; git_reference *ref[NREFS];
git_repository *repo; git_repository *repo;
cl_git_pass(git_repository_open(&repo, data->path)); cl_git_pass(git_repository_open(&repo, data->path));
...@@ -69,14 +71,14 @@ static void *create_refs(void *arg) ...@@ -69,14 +71,14 @@ static void *create_refs(void *arg)
} while (error == GIT_ELOCKED); } while (error == GIT_ELOCKED);
cl_git_pass(error); cl_git_pass(error);
for (i = 0; i < 10; ++i) { for (i = 0; i < NREFS; ++i) {
p_snprintf(name, sizeof(name), "refs/heads/thread-%03d-%02d", data->id, i); p_snprintf(name, sizeof(name), "refs/heads/thread-%03d-%02d", data->id, i);
do { do {
error = git_reference_create(&ref[i], repo, name, &head, 0, NULL); error = git_reference_create(&ref[i], repo, name, &head, 0, NULL);
} while (error == GIT_ELOCKED); } while (error == GIT_ELOCKED);
cl_git_pass(error); cl_git_pass(error);
if (i == 5) { if (i == NREFS/2) {
git_refdb *refdb; git_refdb *refdb;
cl_git_pass(git_repository_refdb(&refdb, repo)); cl_git_pass(git_repository_refdb(&refdb, repo));
do { do {
...@@ -86,7 +88,7 @@ static void *create_refs(void *arg) ...@@ -86,7 +88,7 @@ static void *create_refs(void *arg)
} }
} }
for (i = 0; i < 10; ++i) for (i = 0; i < NREFS; ++i)
git_reference_free(ref[i]); git_reference_free(ref[i]);
git_repository_free(repo); git_repository_free(repo);
...@@ -105,7 +107,7 @@ static void *delete_refs(void *arg) ...@@ -105,7 +107,7 @@ static void *delete_refs(void *arg)
cl_git_pass(git_repository_open(&repo, data->path)); cl_git_pass(git_repository_open(&repo, data->path));
for (i = 0; i < 10; ++i) { for (i = 0; i < NREFS; ++i) {
p_snprintf( p_snprintf(
name, sizeof(name), "refs/heads/thread-%03d-%02d", (data->id) & ~0x3, i); name, sizeof(name), "refs/heads/thread-%03d-%02d", (data->id) & ~0x3, i);
...@@ -121,7 +123,7 @@ static void *delete_refs(void *arg) ...@@ -121,7 +123,7 @@ static void *delete_refs(void *arg)
git_reference_free(ref); git_reference_free(ref);
} }
if (i == 5) { if (i == NREFS/2) {
git_refdb *refdb; git_refdb *refdb;
cl_git_pass(git_repository_refdb(&refdb, repo)); cl_git_pass(git_repository_refdb(&refdb, repo));
do { do {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment