FSH SEMREQUEST

This function allows an FSD to obtain exclusive access to a semaphore.

Syntax
FSH_SEMREQUEST(pSem, cmsTimeout)

Parameters

 * pSem: is the handle to the system semaphore or the long address of the ram semaphore.
 * cmsTimeout: is the number of milliseconds to wait.

Returns
If no error is detected, a zero error code is returned. If an error is detected, one of the following error codes is returned:
 * ERROR_INTERRUPT the current thread received a signal.
 * ERROR_SEM_TIMEOUT the time-out expired without gaining access to the semaphore.
 * ERROR_SEM_OWNER_DIED the owner of the semaphore died.
 * ERROR_TOO_MANY_SEM_REQUESTS there are too many semaphore requests in progress.
 * ERROR_PROTECTION_VIOLATION the semaphore is inaccessible.

Calling Sequence
 int far pascal FSH_SEMREQUEST(pSem, cmsTimeout)

void far * pSem; unsigned long cmsTimeout; 

Remarks
The time-out value of 0xFFFFFFFF indicates an indefinite time-out.

The caller may receive access to the semaphore after the time-out period has expired without receiving an ERROR_SEM_TIMEOUT. Semaphore time-out values, therefore, should not be used for exact timing and sequencing.

FSH_SEMREQUEST may block.


 * Note: OS/2 does not validate input parameters. An FSD, therefore, should call FSH_PROBEBUF where appropriate.