DosReleaseMutexSem: Difference between revisions
Appearance
No edit summary |
|||
Line 1: | Line 1: | ||
=== Syntax === | === Syntax === | ||
rc = DosReleaseMutexSem( ''hmtxSemaphore'' ); | rc = DosReleaseMutexSem( ''hmtxSemaphore'' ); | ||
=== Parameters === | === Parameters === | ||
Line 11: | Line 9: | ||
APIRET rc | APIRET rc | ||
The following values can be returned | The following values can be returned | ||
{|class="wikitable" | |||
{| | |||
|0 | |0 | ||
|NO_ERROR | |NO_ERROR | ||
Line 25: | Line 21: | ||
|ERROR_NOT_OWNER | |ERROR_NOT_OWNER | ||
|Error, The calling process does not currently own the semaphore | |Error, The calling process does not currently own the semaphore | ||
|} | |} | ||
=== Include Info === | === Include Info === | ||
#define INCL_DOSSEMAPHORES | #define INCL_DOSSEMAPHORES | ||
#include | #include <os2.h> | ||
=== Usage Explanation === | === Usage Explanation === | ||
DosReleaseMutexSem releases ownership of mutex semaphore. | |||
DosReleaseMutexSem releases ownership of | It decrements, by one (1), the usage count of the mutex semaphore refered to by ''hmtxSemaphore''. If the usage count for the mutex semaphore goes to zero (0), ownership of the semaphore will be passed on to another thread that has been blocked for requesting it. | ||
It decrements, by one (1), the usage count of the mutex | |||
semaphore refered to by ''hmtxSemaphore''. | |||
mutex semaphore goes to zero (0), ownership of the semaphore will be passed | |||
on to another thread that has been blocked for requesting it. | |||
=== Relevant Structures === | === Relevant Structures === | ||
=== Gotchas === | === Gotchas === | ||
The process calling DosReleaseMutexSem must first obtain access to the semaphore in question or ERROR_INVALID_HANDLE will be returned. | |||
The process calling DosReleaseMutexSem must first obtain access to | |||
the semaphore in question or ERROR_INVALID_HANDLE will be returned. | |||
=== Sample Code === | === Sample Code === | ||
Line 71: | Line 58: | ||
} | } | ||
</pre> | </pre> | ||
=== See Also === | === See Also === | ||
[[OS2 API:CPI:DosCloseMutexSem|DosCloseMutexSem]], | [[OS2 API:CPI:DosCloseMutexSem|DosCloseMutexSem]], | ||
Line 77: | Line 65: | ||
[[OS2 API:CPI:DosQueryMutexSem|DosQueryMutexSem]], | [[OS2 API:CPI:DosQueryMutexSem|DosQueryMutexSem]], | ||
[[OS2 API:CPI:DosRequestMutexSem|DosRequestMutexSem]] | [[OS2 API:CPI:DosRequestMutexSem|DosRequestMutexSem]] | ||
[[Category:The OS/2 API Project]] | [[Category:The OS/2 API Project]] |
Revision as of 23:32, 15 September 2016
Syntax
rc = DosReleaseMutexSem( hmtxSemaphore );
Parameters
HMTX hmtxSemaphore (input)
The handle of the semaphore to be released.
Returns
APIRET rc
The following values can be returned
0 | NO_ERROR | Semaphore released successfully |
6 | ERROR_INVALID_HANDLE | Error, The value in phmtxSemaphore does not point to a valid semaphore, The calling process must first have access to the semaphore in question |
288 | ERROR_NOT_OWNER | Error, The calling process does not currently own the semaphore |
Include Info
#define INCL_DOSSEMAPHORES #include <os2.h>
Usage Explanation
DosReleaseMutexSem releases ownership of mutex semaphore. It decrements, by one (1), the usage count of the mutex semaphore refered to by hmtxSemaphore. If the usage count for the mutex semaphore goes to zero (0), ownership of the semaphore will be passed on to another thread that has been blocked for requesting it.
Relevant Structures
Gotchas
The process calling DosReleaseMutexSem must first obtain access to the semaphore in question or ERROR_INVALID_HANDLE will be returned.
Sample Code
#define INCL_DOSSEMAPHORES #include HMTX hmtxMySemaphore; /* MySemaphore handle */ /* access is gained to the semaphore in question */ /* either by DosCreateMutexSem ... */ /* ... or by DosOpenMutexSem */ /* its handle is placed in hmtxMySemaphore */ /* process becomes owner of semaphore */ /* by way of successful call to DosRequestMutexSem */ rc = DosReleaseMutexSem(hmtxMySemaphore); if (rc != 0) { /* We got an error to take care of. */ }
See Also
DosCloseMutexSem, DosCreateMutexSem, DosOpenMutexSem, DosQueryMutexSem, DosRequestMutexSem