ae2f_docs
Loading...
Searching...
No Matches
Ftx-POSIX.def.c
1#ifndef ae2f_Sys_Ftx_POSIX_auto_h
2
3#include <ae2f/Keys.h>
4#include <ae2f/Macro.h>
6#else
7#include <ae2f/Sys/Ftx.h>
8#endif
9
10#define ae2f_Sys_Ftx_POSIX_auto_h
12
13#if __ae2f_MACRO_GENERATED
14#else
15ae2f_SysFtxLibDeclare_POSIX(static);
16ae2f_SysFtxLibDefine_POSIX(static);
17#endif
18
19ae2f_MAC((UNUSED, )) ae2f_SysFtxWait_imp_POSIX(
20 ae2f_eSysFtxWait ret_err,
21 ae2f_SysFtxEl_t* const prm_uaddr,
22 const int prm_val,
23 const struct timespec* const pprm_timeout
24 )
25{
26 if((ret_err) = pthread_mutex_lock(&__ae2f_gSysFtxMtx));
27 else do {
28 while(*(prm_uaddr) == (v))
29 {
30 if((ret_err) = (pprm_timeout)
31 ? pthread_cond_timedwait(&__ae2f_gSysFtxCnd, &__ae2f_gSysFtxCnd, pprm_timeout)
32 : pthread_cond_wait(&__ae2f_gSysFtxCnd, &__ae2f_gSysFtxMtx))
33 {
34 break;
35 }
36 }
37
38 if((ret_err)) break;
39
40 if((ret_err) = pthread_mutex_unlock(&__ae2f_gSysFtxMtx))
41 {
42 break;
43 }
44
45 (ret_err) = ae2f_SysFtxWait_GOOD;
46 } while(0);
47}
48
49ae2f_MAC() ae2f_SysFtxWakeOne(ae2f_eSysFtxWake ret_err, ae2f_SysFtxEl_t* const prm_uaddr)
50{
51 if((ret_err) = pthread_mutex_lock(&__ae2f_gSysFtxMtx))
52 else do {
53 if((ret_err) = pthread_cond_signal(&(__ae2f_gSysFtxMtx))) {
54 break;
55 }
56
57 if((ret_err) = pthread_mutex_unlock(&(__ae2f_gSysFtxMtx))) {
58 break;
59 }
60
61 (ret_err) = ae2f_SysFtxWake_GOOD;
62 } while(0);
63}
64
65
66#endif
67#endif
#define ae2f_SysFtx_POSIX(a)
Definition Ftx.h:16
#define __ae2f_MACRO_GENERATED
Definition Macro.h:4