From b60b92ba1e1c793c9931bd4b6ff54269670628fd Mon Sep 17 00:00:00 2001
From: Kubat <mael.martin31@gmail.com>
Date: Sun, 2 May 2021 11:38:44 +0200
Subject: [PATCH] CACHE: Add a bit of sleep to not burn the hard-drive

---
 src/base/launch.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/base/launch.c b/src/base/launch.c
index d59d0da0..08bb9206 100644
--- a/src/base/launch.c
+++ b/src/base/launch.c
@@ -173,6 +173,17 @@ end:
 
 static pthread_t ___thread_wlaker;
 
+/* Sleep a bit, to not overuse ressources */
+PRIVATE_FUNCTION void
+___sleep(void)
+{
+    struct timespec time_sleep = {
+        .tv_sec  = 0,
+        .tv_nsec = 100000000L,
+    };                            /* Sleep for 0.1s */
+    nanosleep(&time_sleep, NULL); /* Sleep a bit, better for Hard drive */
+}
+
 PRIVATE_FUNCTION void *
 ___caching_walker(void *args)
 {
@@ -190,6 +201,8 @@ ___caching_walker(void *args)
 
     for (size_t index = 0; index < ids_count; ++index) {
         database_cache_kara(db, ids[index]);
+        if ((index % 10) == 0)
+            ___sleep();
     }
 
     LOG_INFO("CACHE", "Finished caching %ld karas", ids_count);
-- 
GitLab