diff options
author | 2016-01-07 13:32:13 -0800 | |
---|---|---|
committer | 2016-01-07 13:32:13 -0800 | |
commit | 9b028b26877d20d2012301ec57e2186e98292a26 (patch) | |
tree | 8afac357a00dd2710f2c8717d1381af633d06d5c /test | |
parent | 9ac9c125c2f7db02cf91a06264734bf9cafec4e9 (diff) | |
parent | 0eaf2962bb1f4febc3f142c17285a5a8b5892012 (diff) |
Merge pull request #4626 from ctiller/wtfwin
Add an early out to gpr_cpu_test
Diffstat (limited to 'test')
-rw-r--r-- | test/core/support/cpu_test.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/test/core/support/cpu_test.c b/test/core/support/cpu_test.c index f041166d08..d0b78f19d5 100644 --- a/test/core/support/cpu_test.c +++ b/test/core/support/cpu_test.c @@ -73,14 +73,14 @@ struct cpu_test { int is_done; gpr_cv done_cv; int *used; /* is this core used? */ - int r; /* random number */ + unsigned r; /* random number */ }; static void worker_thread(void *arg) { struct cpu_test *ct = (struct cpu_test *)arg; uint32_t cpu; - int r = 12345678; - int i, j; + unsigned r = 12345678; + unsigned i, j; for (i = 0; i < 1000 / GRPC_TEST_SLOWDOWN_FACTOR; i++) { /* run for a bit - just calculate something random. */ for (j = 0; j < 1000000 / GRPC_TEST_SLOWDOWN_FACTOR; j++) { @@ -90,7 +90,13 @@ static void worker_thread(void *arg) { GPR_ASSERT(cpu < ct->ncores); gpr_mu_lock(&ct->mu); ct->used[cpu] = 1; + for (j = 0; j < ct->ncores; j++) { + if (!ct->used[j]) break; + } gpr_mu_unlock(&ct->mu); + if (j == ct->ncores) { + break; /* all cpus have been used - no further use in running this test */ + } } gpr_mu_lock(&ct->mu); ct->r = r; /* make it look like we care about r's value... */ |