SyncDestroy(), SyncDestroy_r()
QNX SDP8.0C Library ReferenceAPIDeveloper
Destroy a synchronization object
Note:
The SyncDestroy() and SyncDestroy_r() kernel calls are
being deprecated in a future release. Use SyncTypeDestroy() and SyncTypeDestroy_r() instead.
Synopsis:
#include <sys/neutrino.h>
int SyncDestroy( sync_t* sync );
int SyncDestroy_r ( sync_t* sync );
Arguments:
- sync
- The synchronization object that you want to destroy.
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The SyncDestroy() and SyncDestroy_r() kernel calls destroy a synchronization object previously allocated by a call to SyncTypeCreate(). You can destroy a locked mutex only if you're its owner. If the object is a condition variable with waiting threads, the call fails. Any attempt to use sync after it is destroyed fails.
These functions are identical except in the way they indicate errors. See the Returns section for details.
Blocking states
These calls don't block.
Returns:
The only difference between these functions is the way they indicate errors:
- SyncDestroy()
- If an error occurs, the function returns -1 and sets errno. Any other value returned indicates success.
- SyncDestroy_r()
- Returns EOK on success. This function does NOT set errno. If an error occurs, the function can return any value listed in the Errors section.
Errors:
- EBUSY
- The synchronization object is locked by a thread.
- EFAULT
- A fault occurred when the kernel tried to access sync.
- EINVAL
- The synchronization ID specified in sync doesn't exist.
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | Yes |
Thread | Yes |
Page updated: