SyncSemPost(), SyncSemPost_r()
QNX SDP8.0C Library ReferenceAPIDeveloper
Increment a semaphore
Synopsis:
#include <sys/neutrino.h>
int SyncSemPost( sync_t* sync );
int SyncSemPost_r( sync_t* sync );
Arguments:
- sync
- A pointer to the synchronization object for the semaphore that you want to increment.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The SyncSemPost() and SyncSemPost_r() kernel calls increment the semaphore referenced by the sync argument. If any threads are blocked on the semaphore, the one waiting the longest is unblocked and allowed to run.
These functions are identical, except for the way they indicate errors. See the Returns section for details.
Note:
You should use the POSIX
sem_post()
function instead of calling SyncSemPost() directly.
Returns:
The only difference between these functions is the way they indicate errors:
- SyncSemPost()
- If an error occurs, the function returns -1 and sets errno. Any other value returned indicates success.
- SyncSemPost_r()
- Returns EOK on success. This function does NOT set errno. If an error occurs, the function returns one of the values listed in the Errors section.
Errors:
- EAGAIN
- Not enough memory for the kernel to create the internal sync object.
- EFAULT
- Invalid pointer.
- EINTR
- A signal interrupted this function.
- EINVAL
- The sync argument doesn't refer to a valid semaphore.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | Yes |
Thread | Yes |
Page updated: