# thread.h File Reference

`#include <pthread.h>`

Go to the source code of this file.

## Defines
#define | THREAD_STACK 524288
## Functions
int | jack_acquire_real_time_scheduling (pthread_t thread, int priority)
int | jack_client_create_thread (jack_client_t *client, pthread_t *thread, int priority, int realtime, void *(*start_routine)(void *), void *arg)
int | jack_drop_real_time_scheduling (pthread_t thread)

## Detailed Description

Library functions to standardize thread creation for JACK and its clients. These interfaces hide some system variations in the handling of realtime scheduling and associated privileges.

## Define Documentation

#define THREAD_STACK 524288

## Function Documentation

int jack_acquire_real_time_scheduling | ( | pthread_t | thread,
|  | int | priority
| ) |

  | Attempt to enable realtime scheduling for a thread. On some systems that may require special privileges. Parameters:
  | thread | POSIX thread ID.
  | priority | requested thread priority.
Returns: 0, if successful; EPERM, if the calling process lacks required realtime privileges; otherwise some other error number.

int jack_client_create_thread | ( | jack_client_t * | client,
|  | pthread_t * | thread,
|  | int | priority,
|  | int | realtime,
|  | void *(*)(void *) | start_routine,
|  | void * | arg
| ) |

  | Create a thread for JACK or one of its clients. The thread is created executing start_routine with arg as its sole argument. Parameters:
  | client | the JACK client for whom the thread is being created. May be NULL if the client is being created within the JACK server.
  | thread | place to return POSIX thread ID.
  | priority | thread priority, if realtime.
  | realtime | true for the thread to use realtime scheduling. On some systems that may require special privileges.
  | start_routine | function the thread calls when it starts.
  | arg | parameter passed to the start_routine.
Returns: 0, if successful; otherwise some error number.

int jack_drop_real_time_scheduling | ( | pthread_t | thread | ) |

  | Drop realtime scheduling for a thread. Parameters:
  | thread | POSIX thread ID.
Returns: 0, if successful; otherwise an error number.