ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VP_SDK / VP_Os / win32 / vp_os_thread.c
1 /**
2  * @file thread.c
3  * @author aurelien.morelle@parrot.fr
4  * @date 2006/12/15
5  */
6
7 #include "VP_Os/vp_os_thread.h"
8 #include "VP_Os/vp_os_assert.h"
9
10 void
11 vp_os_thread_create(THREAD_ROUTINE f, void *parameters, THREAD_HANDLE *handle, ...)
12 {
13   unsigned long id;
14
15   *handle = CreateThread
16     (
17      NULL,      // security
18      0,         // stack size (common)
19      f,         // start (common)
20      parameters,// parameters given to thread routine (common)
21      0,         // creation flags
22      &id        // id
23     );
24 }
25
26 THREAD_HANDLE
27 vp_os_thread_self(void)
28 {
29   return GetCurrentThread();
30 }
31
32 void
33 vp_os_thread_join(THREAD_HANDLE handle)
34 {
35   WaitForSingleObject(handle, INFINITE);
36 }
37
38 void
39 vp_os_thread_suspend(THREAD_HANDLE handle)
40 {
41   SuspendThread(handle);
42 }
43
44 void
45 vp_os_thread_resume(THREAD_HANDLE handle)
46 {
47   ResumeThread(handle);
48 }
49
50 void
51 vp_os_thread_yield(void)
52 {
53  VP_OS_ASSERT(0==1);
54 }
55
56 void
57 vp_os_thread_priority(THREAD_HANDLE handle, int32_t priority)
58 {
59   SetThreadPriority(handle, priority);
60 }