diff options
author | Jens Geyer <jensg@apache.org> | 2022-02-10 23:03:02 +0100 |
---|---|---|
committer | Jens Geyer <Jens-G@users.noreply.github.com> | 2022-02-12 01:15:16 +0100 |
commit | d2c28b349d94e99327a402ce52bcb66f8ab9c769 (patch) | |
tree | 4abb7a53eed24e46cf1f2b80a7ecfce9e60cfdd4 /test | |
parent | 52d263e77c48bbf7cbabd03161107557d1e410b1 (diff) | |
download | thrift-d2c28b349d94e99327a402ce52bcb66f8ab9c769.tar.gz |
THRIFT-5514 netstd test client slow in multithread mode
Client: netstd
Patch: Jens Geyer
Diffstat (limited to 'test')
-rw-r--r-- | test/netstd/Client/TestClient.cs | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/test/netstd/Client/TestClient.cs b/test/netstd/Client/TestClient.cs index 0c80b9c48..29c0d2ef3 100644 --- a/test/netstd/Client/TestClient.cs +++ b/test/netstd/Client/TestClient.cs @@ -411,15 +411,28 @@ namespace ThriftTest return ErrorUnknown; } - var tests = Enumerable.Range(0, param.numThreads).Select(_ => new ClientTest(param)).ToArray(); - //issue tests on separate threads simultaneously + var nThreads = Math.Max(param.numThreads, 1); + Console.Write("Starting {0} test thread(s) ", nThreads); + var tasks = new Task[nThreads]; var start = DateTime.Now; - var tasks = tests.Select(test => test.Execute()).ToArray(); + var retcode = 0; + for (var i = 0; i < tasks.Length; ++i) + { + Console.Write('.'); + tasks[i] = Task.Run(async () => + { + var test = new ClientTest(param); + await test.Execute(); + lock (tasks) + retcode |= test.ReturnCode; + }); + } + Console.WriteLine(" OK"); Task.WaitAll(tasks); Console.WriteLine("Total time: " + (DateTime.Now - start)); Console.WriteLine(); - return tests.Select(t => t.ReturnCode).Aggregate((r1, r2) => r1 | r2); + return retcode; } catch (Exception outerEx) { @@ -490,7 +503,7 @@ namespace ThriftTest return retval; } - private static CancellationToken MakeTimeoutToken(int msec = 5000) + private static CancellationToken MakeTimeoutToken(int msec = 15_000) { var token = new CancellationTokenSource(msec); return token.Token; |