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 |