22 #ifndef WINPR_THREAD_PRIVATE_H
23 #define WINPR_THREAD_PRIVATE_H
29 #include <winpr/thread.h>
31 #include "../handle/handle.h"
32 #include "../synch/event.h"
35 typedef void* (*pthread_start_routine)(
void*);
40 WINPR_ALIGN64 pthread_mutex_t mux;
41 WINPR_ALIGN64 pthread_cond_t cond;
42 WINPR_ALIGN64 BOOL val;
49 WINPR_ALIGN64 BOOL started;
50 WINPR_ALIGN64 WINPR_EVENT_IMPL event;
51 WINPR_ALIGN64 BOOL mainProcess;
52 WINPR_ALIGN64 BOOL detached;
53 WINPR_ALIGN64 BOOL joined;
54 WINPR_ALIGN64 BOOL exited;
55 WINPR_ALIGN64 DWORD dwExitCode;
56 WINPR_ALIGN64 pthread_t thread;
57 WINPR_ALIGN64
size_t dwStackSize;
58 WINPR_ALIGN64 LPVOID lpParameter;
59 WINPR_ALIGN64 pthread_mutex_t mutex;
62 WINPR_ALIGN64 LPTHREAD_START_ROUTINE lpStartAddress;
63 WINPR_ALIGN64 LPSECURITY_ATTRIBUTES lpThreadAttributes;
65 #if defined(WITH_DEBUG_THREADS)
66 WINPR_ALIGN64
void* create_stack;
67 WINPR_ALIGN64
void* exit_stack;
71 WINPR_THREAD* winpr_GetCurrentThread(VOID);