summaryrefslogtreecommitdiffstats
path: root/src/server/integrity.c
diff options
context:
space:
mode:
authorSimon Rettberg2013-08-15 20:48:05 +0200
committerSimon Rettberg2013-08-15 20:48:05 +0200
commitbb3840e5b8d76924dc641e91fa662e876880d2f6 (patch)
tree17287ed63ce2d908284751adfc4e896152111874 /src/server/integrity.c
parent[SERVER] Fix embarrassing descriptor leak (diff)
downloaddnbd3-bb3840e5b8d76924dc641e91fa662e876880d2f6.tar.gz
dnbd3-bb3840e5b8d76924dc641e91fa662e876880d2f6.tar.xz
dnbd3-bb3840e5b8d76924dc641e91fa662e876880d2f6.zip
[SERVER] Reduce priority (nice) of integrity check thread
Diffstat (limited to 'src/server/integrity.c')
-rw-r--r--src/server/integrity.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/server/integrity.c b/src/server/integrity.c
index 82d493e..beec81d 100644
--- a/src/server/integrity.c
+++ b/src/server/integrity.c
@@ -11,8 +11,10 @@
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
+#include <sys/syscall.h>
#include <string.h>
#include <assert.h>
+#include <sys/resource.h>
#define CHECK_QUEUE_SIZE 100
@@ -101,6 +103,11 @@ static void* integrity_main(void *data)
uint8_t *buffer = NULL;
size_t bufferSize = 0;
setThreadName( "image-check" );
+#if defined(linux) || defined(__linux)
+ // Setting nice of this thread - this is not POSIX conforming, so check if other platforms support this
+ pid_t tid = syscall( SYS_gettid );
+ setpriority( PRIO_PROCESS, tid, 10 );
+#endif
pthread_mutex_lock( &integrityQueueLock );
while ( !_shutdown ) {
for (i = queueLen - 1; i >= 0; --i) {