21 #ifndef __JackThread__
22 #define __JackThread__
24 #include "JackCompilerDeps.h"
25 #include "JackTypes.h"
50 virtual bool Execute() = 0;
65 enum kThreadState {kIdle, kStarting, kIniting, kRunning};
72 volatile kThreadState fStatus;
78 fRunnable(runnable), fPriority(priority), fRealTime(real_time), fStatus(kIdle), fCancellation(cancellation)
81 kThreadState GetStatus()
85 void SetStatus(kThreadState status)
90 void SetParams(UInt64 period, UInt64 computation, UInt64 constraint)
99 int AcquireRealTime();
100 int AcquireSelfRealTime();
102 int AcquireRealTime(
int priority);
103 int AcquireSelfRealTime(
int priority);
106 int DropSelfRealTime();
108 jack_native_thread_t GetThreadID();
111 static int AcquireRealTimeImp(jack_native_thread_t thread,
int priority);
112 static int AcquireRealTimeImp(jack_native_thread_t thread,
int priority, UInt64 period, UInt64 computation, UInt64 constraint);
113 static int DropRealTimeImp(jack_native_thread_t thread);
114 static int StartImp(jack_native_thread_t* thread,
int priority,
int realtime,
void*(*start_routine)(
void*),
void* arg);
115 static int StopImp(jack_native_thread_t thread);
116 static int KillImp(jack_native_thread_t thread);
123 bool jack_get_thread_realtime_priority_range(
int * min_ptr,
int * max_ptr);
125 bool jack_tls_allocate_key(jack_tls_key *key_ptr);
126 bool jack_tls_free_key(jack_tls_key key);
128 bool jack_tls_set(jack_tls_key key,
void *data_ptr);
129 void *jack_tls_get(jack_tls_key key);
The base class for runnable objects, that have an Init and Execute method to be called in a threa...