#ifndef ACL_SEM_INCLUDE_H #define ACL_SEM_INCLUDE_H #ifdef __cplusplus extern "C" { #endif #include "../stdlib/acl_define.h" #if defined(_WIN32) || defined(_WIN64) typedef struct ACL_SEM ACL_SEM; struct ACL_SEM { HANDLE id; unsigned int volatile count; }; ACL_API ACL_SEM *acl_sem_create2(const char *pathname, unsigned int initial_value); ACL_API ACL_SEM *acl_sem_create(unsigned int initial_value); ACL_API void acl_sem_destroy(ACL_SEM *sem); ACL_API int acl_sem_wait_timeout(ACL_SEM *sem, unsigned int timeout); ACL_API int acl_sem_try_wait(ACL_SEM *sem); ACL_API int acl_sem_wait(ACL_SEM *sem); ACL_API unsigned int acl_sem_value(ACL_SEM *sem); ACL_API int acl_sem_post(ACL_SEM *sem); #endif #ifdef __cplusplus } #endif #endif