summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2009-04-13 13:55:23 +0200
committerKlaus Schmidinger <vdr@tvdr.de>2009-04-13 13:55:23 +0200
commit5b57bdebdcecf9e544cbf0af72b77106efa62d8f (patch)
tree49bc4305a3ba3a31161413c286085a6e715f6b0a
parentb36d06e1eaf89467410a45bd9b5c48ec61c878ff (diff)
downloadvdr-5b57bdebdcecf9e544cbf0af72b77106efa62d8f.tar.gz
vdr-5b57bdebdcecf9e544cbf0af72b77106efa62d8f.tar.bz2
Added cThread::SetIOPriority() and using it in cRemoveDeletedRecordingsThread
-rw-r--r--CONTRIBUTORS1
-rw-r--r--HISTORY2
-rw-r--r--recording.c3
-rw-r--r--thread.c8
-rw-r--r--thread.h3
5 files changed, 14 insertions, 3 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 6beb396c..c0946220 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -1070,6 +1070,7 @@ Rolf Ahrenberg <rahrenbe@cc.hut.fi>
for setting the thread name, so that it can be seen in 'top -H'
for replacing the Finnish language code "smi" with "suo"
for adding cap_sys_nice to the capabilities that are not dropped
+ for adding cThread::SetIOPriority() and using it in cRemoveDeletedRecordingsThread
Ralf Klueber <ralf.klueber@vodafone.com>
for reporting a bug in cutting a recording if there is only a single editing mark
diff --git a/HISTORY b/HISTORY
index 51d27c32..e694d565 100644
--- a/HISTORY
+++ b/HISTORY
@@ -6039,3 +6039,5 @@ Video Disk Recorder Revision History
caused the selected audio and subtitle tracks to fall back to the default.
- The SVDRP command PUTE now supports reading the EPG data from a given file
(thanks to Helmut Auer).
+- Added cThread::SetIOPriority() and using it in cRemoveDeletedRecordingsThread
+ (thanks to Rolf Ahrenberg).
diff --git a/recording.c b/recording.c
index 00965a7d..c86b1636 100644
--- a/recording.c
+++ b/recording.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: recording.c 2.11 2009/04/13 12:28:36 kls Exp $
+ * $Id: recording.c 2.12 2009/04/13 13:50:39 kls Exp $
*/
#include "recording.h"
@@ -85,6 +85,7 @@ cRemoveDeletedRecordingsThread::cRemoveDeletedRecordingsThread(void)
void cRemoveDeletedRecordingsThread::Action(void)
{
SetPriority(19);
+ SetIOPriority(7);
// Make sure only one instance of VDR does this:
cLockFile LockFile(VideoDirectory);
if (LockFile.Lock()) {
diff --git a/thread.c b/thread.c
index f7e365e8..e6a88980 100644
--- a/thread.c
+++ b/thread.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: thread.c 2.2 2008/09/06 09:39:43 kls Exp $
+ * $Id: thread.c 2.3 2009/04/13 13:50:39 kls Exp $
*/
#include "thread.h"
@@ -226,6 +226,12 @@ void cThread::SetPriority(int Priority)
LOG_ERROR;
}
+void cThread::SetIOPriority(int Priority)
+{
+ if (syscall(SYS_ioprio_set, 1, 0, (Priority & 0xff) | (2 << 13)) < 0) // best effort class
+ LOG_ERROR;
+}
+
void cThread::SetDescription(const char *Description, ...)
{
free(description);
diff --git a/thread.h b/thread.h
index 6eaa79a7..d4919eb6 100644
--- a/thread.h
+++ b/thread.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: thread.h 1.39 2007/02/24 16:13:28 kls Exp $
+ * $Id: thread.h 2.1 2009/04/13 13:50:39 kls Exp $
*/
#ifndef __THREAD_H
@@ -87,6 +87,7 @@ private:
static void *StartThread(cThread *Thread);
protected:
void SetPriority(int Priority);
+ void SetIOPriority(int Priority);
void Lock(void) { mutex.Lock(); }
void Unlock(void) { mutex.Unlock(); }
virtual void Action(void) = 0;