# thread.h

Go to the documentation of this file.

    00001 /*
    00002     Copyright (C) 2004 Paul Davis
    00003
    00004     This program is free software; you can redistribute it and/or modify
    00005     it under the terms of the GNU Lesser General Public License as published by
    00006     the Free Software Foundation; either version 2.1 of the License, or
    00007     (at your option) any later version.
    00008
    00009     This program is distributed in the hope that it will be useful,
    00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
    00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    00012     GNU Lesser General Public License for more details.
    00013
    00014     You should have received a copy of the GNU Lesser General Public License
    00015     along with this program; if not, write to the Free Software
    00016     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
    00017
    00018 */
    00019
    00020 #ifndef __jack_thread_h__
    00021 #define __jack_thread_h__
    00022
    00023 #ifdef __cplusplus
    00024 extern "C" {
    00025 #endif
    00026
    00027 #include <pthread.h>
    00028
    00029 /* use 512KB stack per thread - the default is way too high to be feasible
    00030  * with mlockall() on many systems */
    00031 #define THREAD_STACK 524288
    00032
    00051 int jack_client_real_time_priority (jack_client_t*);
    00052
    00059 int jack_client_max_real_time_priority (jack_client_t*);
    00060
    00071 int jack_acquire_real_time_scheduling (pthread_t thread, int priority);
    00072
    00089 int jack_client_create_thread (jack_client_t* client,
    00090                                pthread_t *thread,
    00091                                int priority,
    00092                                int realtime,    /* boolean */
    00093                                void *(*start_routine)(void*),
    00094                                void *arg);
    00095
    00103 int jack_drop_real_time_scheduling (pthread_t thread);
    00104
    00105 /* @} */
    00106
    00107 #ifdef __cplusplus
    00108 }
    00109 #endif
    00110
    00111 #endif /* __jack_thread_h__ */