Skip to content
Snippets Groups Projects
Commit 321c9e2d authored by Florian Fischer's avatar Florian Fischer Committed by Florian Fischer
Browse files

[EchoClient] remember and output the time when the terminator thread wakes up

parent 5d7d4f76
No related branches found
No related tags found
No related merge requests found
Pipeline #61750 passed
...@@ -129,7 +129,7 @@ class Client { ...@@ -129,7 +129,7 @@ class Client {
static auto startNew(Semaphore& readySem, Semaphore& startSem, CPS& cps) -> bool; static auto startNew(Semaphore& readySem, Semaphore& startSem, CPS& cps) -> bool;
private: private:
inline auto shouldTerminate() const -> bool { [[nodiscard]] auto shouldTerminate() const -> bool {
return iteration >= iterations || terminate.load(std::memory_order_relaxed); return iteration >= iterations || terminate.load(std::memory_order_relaxed);
} }
...@@ -506,10 +506,12 @@ auto main(int argc, char* argv[]) -> int { ...@@ -506,10 +506,12 @@ auto main(int argc, char* argv[]) -> int {
readySemaphore.acquire(); readySemaphore.acquire();
} }
high_resolution_clock::time_point echoTerminationTime;
if (execution_seconds) { if (execution_seconds) {
iterations = SIZE_MAX; iterations = SIZE_MAX;
terminator = std::thread([] { terminator = std::thread([&] {
std::this_thread::sleep_for(seconds(execution_seconds)); std::this_thread::sleep_for(seconds(execution_seconds));
echoTerminationTime = high_resolution_clock::now();
terminate.store(true); terminate.store(true);
}); });
} }
...@@ -531,6 +533,11 @@ auto main(int argc, char* argv[]) -> int { ...@@ -531,6 +533,11 @@ auto main(int argc, char* argv[]) -> int {
} }
auto connect_duration = duration_cast<nanoseconds>(echo_start - connect_start).count(); auto connect_duration = duration_cast<nanoseconds>(echo_start - connect_start).count();
uint64_t echoDurationUntilTermination;
if (execution_seconds) {
echoDurationUntilTermination =
duration_cast<nanoseconds>(echoTerminationTime - echo_start).count();
}
auto echo_duration = duration_cast<nanoseconds>(echo_end - echo_start).count(); auto echo_duration = duration_cast<nanoseconds>(echo_end - echo_start).count();
auto total_duration = duration_cast<nanoseconds>(echo_end - connect_start).count(); auto total_duration = duration_cast<nanoseconds>(echo_end - connect_start).count();
...@@ -561,6 +568,9 @@ auto main(int argc, char* argv[]) -> int { ...@@ -561,6 +568,9 @@ auto main(int argc, char* argv[]) -> int {
sst << "total_unexpected_echos = " << total_unexpected_echos << std::endl; sst << "total_unexpected_echos = " << total_unexpected_echos << std::endl;
sst << "avg_ns = " << avg_ns.getAverage() << std::endl; sst << "avg_ns = " << avg_ns.getAverage() << std::endl;
sst << "connect_duration = " << connect_duration << std::endl; sst << "connect_duration = " << connect_duration << std::endl;
if (execution_seconds) {
sst << "execution_duration = " << echoDurationUntilTermination << std::endl;
}
sst << "echo_duration = " << echo_duration << std::endl; sst << "echo_duration = " << echo_duration << std::endl;
sst << "total_duration = " << total_duration << std::endl; sst << "total_duration = " << total_duration << std::endl;
sst << std::endl; sst << std::endl;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment