| 141 | } |
| 142 | |
| 143 | static int pthread_cond_init(pthread_cond_t* const condition, void* cond_attr) { |
| 144 | (void)cond_attr; |
| 145 | #ifdef USE_WINDOWS_CONDITION_VARIABLE |
| 146 | InitializeConditionVariable(condition); |
| 147 | #else |
| 148 | condition->waiting_sem_ = CreateSemaphore(NULL, 0, 1, NULL); |
| 149 | condition->received_sem_ = CreateSemaphore(NULL, 0, 1, NULL); |
| 150 | condition->signal_event_ = CreateEvent(NULL, FALSE, FALSE, NULL); |
| 151 | if (condition->waiting_sem_ == NULL || |
| 152 | condition->received_sem_ == NULL || |
| 153 | condition->signal_event_ == NULL) { |
| 154 | pthread_cond_destroy(condition); |
| 155 | return 1; |
| 156 | } |
| 157 | #endif |
| 158 | return 0; |
| 159 | } |
| 160 | |
| 161 | static int pthread_cond_signal(pthread_cond_t* const condition) { |
| 162 | int ok = 1; |
no test coverage detected