class Poco::ThreadImpl
#include <Thread_POSIX.h>
class ThreadImpl
{
public:
// typedefs
typedef pthread_t TIDImpl;
typedef int TIDImpl;
typedef unsigned(__stdcall* Entry)(void *);
typedef DWORD TIDImpl;
typedef void (*Callable)(void *);
typedef DWORD(WINAPI* Entry)(LPVOID);
// enums
enum
{
DEFAULT_THREAD_STACK_SIZE = 65536,
};
enum Policy;
enum Priority;
// structs
struct CallbackData;
struct ThreadData;
// classes
class CurrentThreadHolder;
// methods
TIDImpl
tidImpl() const;
void
setOSPriorityImpl(
int prio,
int policy = SCHED_OTHER
);
void
startImpl(Runnable& target);
void
startImpl(
Callable target,
void* pData = 0
);
TIDImpl
tidImpl() const;
void
setPriorityImpl(int prio);
int
getPriorityImpl() const;
void
setOSPriorityImpl(
int prio,
int policy = 0
);
int
getOSPriorityImpl() const;
void
setStackSizeImpl(int size);
int
getStackSizeImpl() const;
void
startImpl(SharedPtr<Runnable> pTarget);
void
joinImpl();
bool
joinImpl(long milliseconds);
bool
isRunningImpl() const;
static
int
getMinOSPriorityImpl(int policy);
static
int
getMaxOSPriorityImpl(int policy);
static
void
sleepImpl(long milliseconds);
static
void
yieldImpl();
static
int
getMinOSPriorityImpl(int policy);
static
int
getMaxOSPriorityImpl(int policy);
static
void
sleepImpl(long milliseconds);
static
void
yieldImpl();
static
ThreadImpl*
currentImpl();
static
TIDImpl
currentTidImpl();
protected:
// methods
static
void*
runnableEntry(void* pThread);
static
int
mapPrio(
int prio,
int policy = SCHED_OTHER
);
static
int
reverseMapPrio(
int osPrio,
int policy = SCHED_OTHER
);
static
void
runnableEntry(
void* pThread,
int,
int,
int,
int,
int,
int,
int,
int,
int
);
static
void
callableEntry(
void* pThread,
int,
int,
int,
int,
int,
int,
int,
int,
int
);
static
int
mapPrio(int prio);
static
int
reverseMapPrio(int osPrio);
static
unsigned __stdcall
runnableEntry(void* pThread);
static
DWORD WINAPI
runnableEntry(LPVOID pThread);
void
createImpl(
Entry ent,
void* pData
);
void
threadCleanup();
};
// direct descendants
class Thread;