|
|
@ -72,6 +72,7 @@ int px4_sem_wait(px4_sem_t *s) |
|
|
|
|
|
|
|
|
|
|
|
if (s->value < 0) { |
|
|
|
if (s->value < 0) { |
|
|
|
ret = pthread_cond_wait(&(s->wait), &(s->lock)); |
|
|
|
ret = pthread_cond_wait(&(s->wait), &(s->lock)); |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
ret = 0; |
|
|
|
ret = 0; |
|
|
|
} |
|
|
|
} |
|
|
@ -97,6 +98,7 @@ int px4_sem_timedwait(px4_sem_t *s, const struct timespec *abstime) |
|
|
|
|
|
|
|
|
|
|
|
if (s->value < 0) { |
|
|
|
if (s->value < 0) { |
|
|
|
ret = pthread_cond_timedwait(&(s->wait), &(s->lock), abstime); |
|
|
|
ret = pthread_cond_timedwait(&(s->wait), &(s->lock), abstime); |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
ret = 0; |
|
|
|
ret = 0; |
|
|
|
} |
|
|
|
} |
|
|
@ -132,6 +134,7 @@ int px4_sem_post(px4_sem_t *s) |
|
|
|
|
|
|
|
|
|
|
|
if (s->value <= 0) { |
|
|
|
if (s->value <= 0) { |
|
|
|
ret = pthread_cond_signal(&(s->wait)); |
|
|
|
ret = pthread_cond_signal(&(s->wait)); |
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
} else { |
|
|
|
ret = 0; |
|
|
|
ret = 0; |
|
|
|
} |
|
|
|
} |
|
|
|