From 242719e7a7d26457dbf6d23b3613d00a22d992b4 Mon Sep 17 00:00:00 2001 From: ALEXks Date: Mon, 3 Mar 2025 18:16:46 +0300 Subject: [PATCH 1/5] improved planner --- src/files/Supervisor.h | 24 ++++++++++++++++-------- src/files/version.h | 2 +- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/files/Supervisor.h b/src/files/Supervisor.h index df95e2ee..05572349 100644 --- a/src/files/Supervisor.h +++ b/src/files/Supervisor.h @@ -157,10 +157,12 @@ public: vector toDel; size_t done = 0; - size_t step = ceil(totalProcessTasks * 0.02); // step == 2% + size_t step = ceil(totalProcessTasks * 0.01); // step == 1% const double total = totalProcessTasks; - auto timer_start = Utils::getAbsoluteTime(); + auto timer_pause = Utils::getAbsoluteTime(); + auto timer_dump = Utils::getAbsoluteTime(); + while (activeTasks) { long oldActiveTasks = activeTasks; emptyKeys.clear(); @@ -221,19 +223,20 @@ public: #if DEB printf("done %ld / %d\n", done, this->getLength()); #endif - if ((done % step) == 0) { + if ((done % step) == 0 && (Utils::getAbsoluteTime() - timer_dump) > 5) { size_t persentDone = (done / total) * 100.0; saveProgress(persentDone); + timer_dump = Utils::getAbsoluteTime(); } } - // прошло больше 10 секунд, проверяем паузу - if (Utils::getAbsoluteTime() - timer_start > 30) { + // прошло больше 30 секунд, проверяем паузу + if (Utils::getAbsoluteTime() - timer_pause > 30) { printf("stoped\n"); while (checkPause()) { Utils::Sleep(10); } - timer_start = Utils::getAbsoluteTime(); + timer_pause = Utils::getAbsoluteTime(); printf("resume\n"); } } @@ -253,12 +256,17 @@ public: } void saveProgress(long long persentDone) { - FILE *f = fopen("progress", "w"); + String dump_progress = "echo '"; + dump_progress = dump_progress + to_string(persentDone).c_str() + "' >> progress"; + + system(dump_progress.getCharArray()); + + /*FILE* f = fopen("progress", "w"); if (f) { fprintf(f, "%lld", persentDone); fflush(f); fclose(f); - } + }*/ } bool checkPause() { diff --git a/src/files/version.h b/src/files/version.h index 3cacc0b9..ca7bf83a 100644 --- a/src/files/version.h +++ b/src/files/version.h @@ -1 +1 @@ -12 \ No newline at end of file +13 \ No newline at end of file From 4288f83105784c54778cd47ff2533f3847a4ddad Mon Sep 17 00:00:00 2001 From: ALEXks Date: Mon, 3 Mar 2025 18:18:09 +0300 Subject: [PATCH 2/5] improved planner --- src/files/Supervisor.h | 24 ++++++++++++++++-------- src/files/version.h | 2 +- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/files/Supervisor.h b/src/files/Supervisor.h index df95e2ee..3d67cad1 100644 --- a/src/files/Supervisor.h +++ b/src/files/Supervisor.h @@ -157,10 +157,12 @@ public: vector toDel; size_t done = 0; - size_t step = ceil(totalProcessTasks * 0.02); // step == 2% + size_t step = ceil(totalProcessTasks * 0.01); // step == 1% const double total = totalProcessTasks; - auto timer_start = Utils::getAbsoluteTime(); + auto timer_pause = Utils::getAbsoluteTime(); + auto timer_dump = Utils::getAbsoluteTime(); + while (activeTasks) { long oldActiveTasks = activeTasks; emptyKeys.clear(); @@ -221,19 +223,20 @@ public: #if DEB printf("done %ld / %d\n", done, this->getLength()); #endif - if ((done % step) == 0) { + if ((done % step) == 0 && (Utils::getAbsoluteTime() - timer_dump) > 5) { size_t persentDone = (done / total) * 100.0; saveProgress(persentDone); + timer_dump = Utils::getAbsoluteTime(); } } - // прошло больше 10 секунд, проверяем паузу - if (Utils::getAbsoluteTime() - timer_start > 30) { + // прошло больше 30 секунд, проверяем паузу + if (Utils::getAbsoluteTime() - timer_pause > 30) { printf("stoped\n"); while (checkPause()) { Utils::Sleep(10); } - timer_start = Utils::getAbsoluteTime(); + timer_pause = Utils::getAbsoluteTime(); printf("resume\n"); } } @@ -253,12 +256,17 @@ public: } void saveProgress(long long persentDone) { - FILE *f = fopen("progress", "w"); + String dump_progress = "echo '"; + dump_progress = dump_progress + to_string(persentDone).c_str() + "' > progress"; + + system(dump_progress.getCharArray()); + + /*FILE* f = fopen("progress", "w"); if (f) { fprintf(f, "%lld", persentDone); fflush(f); fclose(f); - } + }*/ } bool checkPause() { diff --git a/src/files/version.h b/src/files/version.h index 3cacc0b9..ca7bf83a 100644 --- a/src/files/version.h +++ b/src/files/version.h @@ -1 +1 @@ -12 \ No newline at end of file +13 \ No newline at end of file From 683d5249eb2f293591c038bd59ac4b2d974c7669 Mon Sep 17 00:00:00 2001 From: ALEXks Date: Mon, 3 Mar 2025 18:23:49 +0300 Subject: [PATCH 3/5] fixed --- src/files/Supervisor.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/files/Supervisor.h b/src/files/Supervisor.h index 6503a5a5..3d67cad1 100644 --- a/src/files/Supervisor.h +++ b/src/files/Supervisor.h @@ -257,11 +257,7 @@ public: void saveProgress(long long persentDone) { String dump_progress = "echo '"; -<<<<<<< HEAD dump_progress = dump_progress + to_string(persentDone).c_str() + "' > progress"; -======= - dump_progress = dump_progress + to_string(persentDone).c_str() + "' >> progress"; ->>>>>>> 242719e7a7d26457dbf6d23b3613d00a22d992b4 system(dump_progress.getCharArray()); From 4ae8c2f6641702a9b107efc6e05fccc48525bbdb Mon Sep 17 00:00:00 2001 From: ALEXks Date: Mon, 3 Mar 2025 18:51:20 +0300 Subject: [PATCH 4/5] removed timer checking --- src/files/Supervisor.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/files/Supervisor.h b/src/files/Supervisor.h index 3d67cad1..d3978c8d 100644 --- a/src/files/Supervisor.h +++ b/src/files/Supervisor.h @@ -161,8 +161,7 @@ public: const double total = totalProcessTasks; auto timer_pause = Utils::getAbsoluteTime(); - auto timer_dump = Utils::getAbsoluteTime(); - + while (activeTasks) { long oldActiveTasks = activeTasks; emptyKeys.clear(); @@ -223,10 +222,9 @@ public: #if DEB printf("done %ld / %d\n", done, this->getLength()); #endif - if ((done % step) == 0 && (Utils::getAbsoluteTime() - timer_dump) > 5) { + if ((done % step) == 0) { size_t persentDone = (done / total) * 100.0; saveProgress(persentDone); - timer_dump = Utils::getAbsoluteTime(); } } From fca5bb42bdf46e75c889972ed7770aa9b914b65b Mon Sep 17 00:00:00 2001 From: ALEXks Date: Mon, 3 Mar 2025 18:54:03 +0300 Subject: [PATCH 5/5] rollback --- src/files/Supervisor.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/files/Supervisor.h b/src/files/Supervisor.h index d3978c8d..3a4ceb13 100644 --- a/src/files/Supervisor.h +++ b/src/files/Supervisor.h @@ -254,17 +254,17 @@ public: } void saveProgress(long long persentDone) { - String dump_progress = "echo '"; - dump_progress = dump_progress + to_string(persentDone).c_str() + "' > progress"; + /*String dump_progress = "echo '"; + dump_progress = dump_progress + to_string(persentDone).c_str() + "' > progress"; - system(dump_progress.getCharArray()); + system(dump_progress.getCharArray());*/ - /*FILE* f = fopen("progress", "w"); + FILE* f = fopen("progress", "w"); if (f) { fprintf(f, "%lld", persentDone); fflush(f); fclose(f); - }*/ + } } bool checkPause() {