39 #if (CISST_OS == CISST_WINDOWS)
43 #if (CISST_OS == CISST_DARWIN) // SCHED_FIFO is not defined otherwise
80 enum {INTERNALS_SIZE = 8};
81 char Internals[INTERNALS_SIZE];
88 static unsigned int SizeOfInternals(
void);
89 friend class osaThreadTest;
106 return this->Equal(other);
111 return !this->Equal(other);
115 #if (CISST_OS == CISST_LINUX_RTAI) || (CISST_OS == CISST_LINUX) || (CISST_OS == CISST_SOLARIS) || (CISST_OS == CISST_QNX) || (CISST_OS == CISST_WINDOWS)
128 void ToStream(std::ostream & outputStream)
const;
170 enum { INTERNALS_SIZE = 96 };
171 char Internals[INTERNALS_SIZE];
175 static unsigned int SizeOfInternals(
void);
176 friend class osaThreadTest;
201 void CreateInternal(
const char* name,
void* func,
void* userdata);
203 void SetThreadName(
const char* name);
215 const char * name = 0,
int priority = 0,
int policy =
SCHED_FIFO)
219 CreateInternal(name, (
void *)threadStart, 0);
223 template <
class _userDataType>
224 void Create(
void * (*threadStart)(_userDataType),
225 _userDataType userData = _userDataType(),
226 const char * name = 0,
int priority = 0,
int policy =
SCHED_FIFO)
230 CreateInternal(name, (
void *)threadStart, (
void *)userData);
236 template <
class _entryType,
class _userDataType>
237 void Create(_entryType * obj,
void * (_entryType::*threadStart)(_userDataType),
238 _userDataType userData = _userDataType(),
239 const char * name = 0,
int priority = 0,
int policy =
SCHED_FIFO)
248 CreateInternal(name, (
void *)adapter_t::CallbackAndDestroy, (
void *)adapter_t::Create(obj, threadStart, userData));
263 const char * name = 0,
int priority = 0,
int policy =
SCHED_FIFO)
285 inline void WaitForWakeup(
double timeoutInSec) { Signal.Wait(timeoutInSec); }
288 inline void Wakeup(
void) { Signal.Raise(); }
291 inline const char *
GetName(
void)
const {
return Name; }
320 void Sleep(
double timeInSeconds);
326 inline bool IsValid(
void)
const {
return Valid; }
339 #endif // _osaThread_h
#define CISST_EXPORT
Definition: cmnExportMacros.h:50
const char * GetName(void) const
Definition: osaThread.h:291
int PriorityType
PriorityType and SchedulingPolicyType.
Definition: osaThread.h:55
void Create(void *(*threadStart)(void), const char *name=0, int priority=0, int policy=SCHED_FIFO)
Definition: osaThread.h:214
void ToStream(std::ostream &outputStream) const
Portability across compilers and operating systems tools.
#define SCHED_FIFO
Definition: osaThread.h:40
osaThreadId GetId(void) const
Definition: osaThread.h:294
std::ostream & operator<<(std::ostream &output, const osaThreadId &threadId)
Definition: osaThread.h:134
Define a thread object.
Definition: osaThread.h:164
void Wakeup(void)
Definition: osaThread.h:288
bool IsValid(void) const
Definition: osaThread.h:326
CISST_EXPORT osaThreadId osaGetCurrentThreadId(void)
CISST_EXPORT void osaCurrentThreadYield(void)
void WaitForWakeup(void)
Definition: osaThread.h:282
Declaration of osaThreadSignal.
void Create(void *(*threadStart)(_userDataType), _userDataType userData=_userDataType(), const char *name=0, int priority=0, int policy=SCHED_FIFO)
Definition: osaThread.h:224
ThreadId type.
Definition: osaThread.h:77
Macros to export the symbols of cisstOSAbstraction (in a Dll).
int SchedulingPolicyType
SchedulingPolicyType. For now SchedulingPolicy is typedef'ed to int.
Definition: osaThread.h:62
void CreateFromThreadId(const osaThreadId &threadId, const char *name=0, int priority=0, int policy=SCHED_FIFO)
Definition: osaThread.h:262
bool IsRunning(void) const
Definition: osaThread.h:323
void WaitForWakeup(double timeoutInSec)
Definition: osaThread.h:285
Definition: osaThreadSignal.h:40
Defines a thread adapter.
void Create(_entryType *obj, void *(_entryType::*threadStart)(_userDataType), _userDataType userData=_userDataType(), const char *name=0, int priority=0, int policy=SCHED_FIFO)
Definition: osaThread.h:237
Definition: osaThreadAdapter.h:85
void CreateFromCurrentThread(const char *name=0, int priority=0, int policy=SCHED_FIFO)
Definition: osaThread.h:253