Wait on a named or unnamed semaphore, but don't block
Synopsis:
#include <semaphore.h>
int sem_trywait( sem_t * sem );
Arguments:
- sem
- A pointer to the sem_t object for the semaphore that
you want to wait on.
Library:
libc
Use the -l c option to
qcc
to link against this library.
This library is usually included automatically.
Description:
The sem_trywait() function decrements the semaphore if the
semaphore's value is greater than zero; otherwise, the function simply returns.
Returns:
- 0
- The semaphore was successfully decremented.
- -1
- The state of the semaphore is unchanged
(errno is set).
Errors:
- EAGAIN
- The semaphore was already locked, so it couldn't be
immediately locked by the sem_trywait() function.
- EDEADLK
- A deadlock condition was detected.
- EINVAL
- Invalid semaphore descriptor sem.
- EINTR
- A signal interrupted this function.
Classification:
POSIX 1003.1 SEM
Safety: |
|
Cancellation point |
No |
Interrupt handler |
No |
Signal handler |
Yes |
Thread |
Yes |