diff options
author | David Phillips <david@sighup.nz> | 2017-06-27 17:21:03 +1200 |
---|---|---|
committer | David Phillips <david@sighup.nz> | 2017-06-27 17:22:00 +1200 |
commit | a3e735c45f08a345435a845fa73a293946992b59 (patch) | |
tree | 939e2f7be0ccaba6a09a792d460d3a4f5e3bb8fb | |
parent | f4629a55ed53acffb29208403e15be9a279b7a9f (diff) | |
download | sand-leek-a3e735c45f08a345435a845fa73a293946992b59.tar.xz |
Don't trample worker thread output with performance string
-rw-r--r-- | sand-leek.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sand-leek.c b/sand-leek.c index 37fe14c..e5cf227 100644 --- a/sand-leek.c +++ b/sand-leek.c @@ -207,15 +207,16 @@ die_usage(const char *argv0) { void monitor_progress(unsigned long volatile *khashes, int thread_count) { + int res = 0; int loops = 0; int i = 0; unsigned long total_khashes = 0; unsigned long last_total_khashes = 0; loops = 0; - while (sem_trywait(&working) && errno == EAGAIN) { - sleep(1); - loops++; + /* loop while no thread as announced work end; we don't want to + * trample its output on stderr */ + while (!sem_getvalue(&working, &res) && res == 0) { last_total_khashes = total_khashes; total_khashes = 0; /* approximate hashes per second */ @@ -227,6 +228,8 @@ monitor_progress(unsigned long volatile *khashes, int thread_count) { (double)(total_khashes - last_total_khashes) / thread_count, (double)total_khashes / loops, ((double)total_khashes / loops) / thread_count); + sleep(1); + loops++; } /* line feed to finish off carriage return from hashrate fprintf */ |