summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRyo Nakamura <upa@haeena.net>2022-10-23 00:14:28 +0900
committerRyo Nakamura <upa@haeena.net>2022-10-23 00:14:28 +0900
commitec785ff33eb1c9ddde2ccba88d6e522f653cc33e (patch)
treed2781231dff331ee0eb36725dea635bcbb8d2fcb /src
parent3a22043f41a53469d6f8cafeebfd962a12cbbd2a (diff)
fix stat output
Diffstat (limited to 'src')
-rw-r--r--src/file.c4
-rw-r--r--src/main.c25
2 files changed, 16 insertions, 13 deletions
diff --git a/src/file.c b/src/file.c
index 6b309a1..54ce774 100644
--- a/src/file.c
+++ b/src/file.c
@@ -724,8 +724,10 @@ int chunk_copy(struct chunk *c, sftp_session sftp, size_t buf_sz, size_t *counte
if (ret < 0)
return ret;
- if (refcnt_dec(&f->refcnt) == 0)
+ if (refcnt_dec(&f->refcnt) == 0) {
f->state = FILE_STATE_DONE;
+ pr("copy done: %s\n", f->path);
+ }
return ret;
}
diff --git a/src/main.c b/src/main.c
index ab90fa4..169cdac 100644
--- a/src/main.c
+++ b/src/main.c
@@ -422,16 +422,21 @@ void *sscp_monitor_thread(void *arg)
total += f->size;
}
total_round = total;
- for (byte_tu = 0; total_round > 1000 && byte_tu < 5; byte_tu++)
+ for (byte_tu = 0; total_round > 1000 && byte_tu < 4; byte_tu++)
total_round /= 1024;
while (1) {
+ all_done = true;
+ last = 0;
+ done = 0;
+ for (n = 0; n < nr_threads; n++) {
+ t = &threads[n];
+ last += t->done;
+ }
gettimeofday(&b, NULL);
- sleep(1);
- all_done = true;
- done = 0;
+ sleep(1);
for (n = 0; n < nr_threads; n++) {
t = &threads[n];
@@ -439,14 +444,13 @@ void *sscp_monitor_thread(void *arg)
if (!t->finished)
all_done = false;
}
-
gettimeofday(&a, NULL);
- percent = floor(((double)(done) / (double)total) * 100);
- for (byte_du = 0; done > 1000 && byte_du < 5; byte_du++) done /= 1024;
-
bps = calculate_bps(done - last, &b, &a);
- for (bps_u = 0; bps > 1000 && bps_u < 4; bps_u++) bps /= 1000;
+ for (bps_u = 0; bps > 1000 && bps_u < 3; bps_u++) bps /= 1000;
+
+ percent = floor(((double)(done) / (double)total) * 100);
+ for (byte_du = 0; done > 1000 && byte_du < 4; byte_du++) done /= 1024;
printf("%d%% (%lu%s/%lu%s) %.2f %s\n",
percent,
@@ -455,9 +459,6 @@ void *sscp_monitor_thread(void *arg)
if (all_done || total == done)
break;
-
- last = done;
- b = a;
}
return NULL;