annotate base/Thread.cpp @ 167:665342c6ec57

* Add a bit of resistance to pane dragging so as to make it harder to inadvertently drag in the other axis from the one you intended
author Chris Cannam
date Fri, 22 Sep 2006 16:46:10 +0000
parents 61a2ac1241b3
children 85bf384db35f
rev   line source
Chris@109 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
Chris@109 2
Chris@109 3 /*
Chris@109 4 Sonic Visualiser
Chris@109 5 An audio file viewer and annotation editor.
Chris@109 6 Centre for Digital Music, Queen Mary, University of London.
Chris@109 7 This file copyright 2006 Chris Cannam.
Chris@109 8
Chris@109 9 This program is free software; you can redistribute it and/or
Chris@109 10 modify it under the terms of the GNU General Public License as
Chris@109 11 published by the Free Software Foundation; either version 2 of the
Chris@109 12 License, or (at your option) any later version. See the file
Chris@109 13 COPYING included with this distribution for more information.
Chris@109 14 */
Chris@109 15
Chris@109 16 #include "Thread.h"
Chris@109 17
Chris@109 18 #ifndef _WIN32
Chris@109 19 #include <pthread.h>
Chris@109 20 #endif
Chris@109 21
Chris@109 22 Thread::Thread(Type type, QObject *parent) :
Chris@109 23 QThread(parent),
Chris@109 24 m_type(type)
Chris@109 25 {
Chris@109 26 setStackSize(512 * 1024);
Chris@109 27 }
Chris@109 28
Chris@109 29 void
Chris@109 30 Thread::start()
Chris@109 31 {
Chris@109 32 QThread::start();
Chris@109 33
Chris@109 34 #ifndef _WIN32
Chris@109 35 struct sched_param param;
Chris@109 36 ::memset(&param, 0, sizeof(param));
Chris@109 37
Chris@109 38 if (m_type == RTThread) {
Chris@109 39
Chris@109 40 param.sched_priority = 5;
Chris@109 41
Chris@109 42 if (::pthread_setschedparam(pthread_self(), SCHED_FIFO, &param)) {
Chris@109 43 ::perror("INFO: pthread_setschedparam to SCHED_FIFO failed");
Chris@109 44 }
Chris@109 45
Chris@109 46 } else {
Chris@109 47
Chris@109 48 if (::pthread_setschedparam(pthread_self(), SCHED_OTHER, &param)) {
Chris@109 49 ::perror("WARNING: pthread_setschedparam to SCHED_OTHER failed");
Chris@109 50 }
Chris@109 51 }
Chris@109 52
Chris@109 53 #endif
Chris@109 54 }
Chris@109 55