14 #ifndef THREADWIN32IMPL_H
15 #define THREADWIN32IMPL_H
20 #ifdef THREAD_WIN32_IMPL
32 class EXPCL_PANDA_PIPELINE ThreadWin32Impl {
34 INLINE ThreadWin32Impl(
Thread *parent_obj);
37 void setup_main_thread();
38 bool start(ThreadPriority priority,
bool joinable);
40 INLINE
void preempt();
42 std::string get_unique_id()
const;
44 INLINE
static void prepare_for_exit();
46 INLINE
static Thread *get_current_thread();
47 INLINE
static void bind_thread(
Thread *thread);
48 INLINE
static bool is_threading_supported();
49 INLINE
static bool is_true_threads();
50 INLINE
static bool is_simple_threads();
51 INLINE
static void sleep(
double seconds);
52 INLINE
static void yield();
53 INLINE
static void consider_yield();
56 static DWORD WINAPI root_func(LPVOID data);
57 static void init_pt_ptr_index();
66 MutexWin32Impl _mutex;
67 ConditionVarWin32Impl _cv;
74 static DWORD _pt_ptr_index;
75 static bool _got_pt_ptr_index;
80 #endif // THREAD_WIN32_IMPL