3 * @author aurelien.morelle@parrot.fr
7 #include "VP_Os/vp_os_signal.h"
11 vp_os_mutex_init(vp_os_mutex_t *mutex)
13 InitializeCriticalSection((CRITICAL_SECTION *)mutex);
18 vp_os_mutex_destroy(vp_os_mutex_t *mutex)
20 DeleteCriticalSection((CRITICAL_SECTION *)mutex);
25 vp_os_mutex_lock(vp_os_mutex_t *mutex)
27 EnterCriticalSection((CRITICAL_SECTION *)mutex);
32 vp_os_mutex_unlock(vp_os_mutex_t *mutex)
34 LeaveCriticalSection((CRITICAL_SECTION *)mutex);
39 vp_os_cond_init(vp_os_cond_t *cond, vp_os_mutex_t *mutex)
41 /* // InitializeConditionVariable only work under VISTA
42 InitializeConditionVariable(&cond->cond);
49 vp_os_cond_destroy(vp_os_cond_t *cond)
55 vp_os_cond_wait(vp_os_cond_t *cond)
57 WaitForSingleObject(cond->LockSemaphore,INFINITE); // TODO: to test
58 /* // SleepConditionVariableCS only work under VISTA
59 SleepConditionVariableCS(&cond->cond, (CRITICAL_SECTION *)cond->mutex, INFINITE);
64 vp_os_cond_timed_wait(vp_os_cond_t *cond, uint32_t ms)
66 return WaitForSingleObject(cond->LockSemaphore, ms) == WAIT_TIMEOUT ? FAIL : SUCCESS; // TODO: to test
70 vp_os_cond_signal(vp_os_cond_t *cond)
72 /* // WakeConditionVariable only work under VISTA
73 WakeConditionVariable(&cond->cond);