diff --git a/src/base/launch.c b/src/base/launch.c index d59d0da0220763d349f4953393074441e657b061..08bb92067aca27dee466ffa68dfba1bf4a093f83 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);