==== FSH_SEMWAIT ==== **Purpose** This function allows an FSD to wait for an event. The event is signaled by a call to //FSH_SEMCLEAR//. **Calling Sequence** int far pascal FSH_SEMWAIT(pSem, cmsTimeout) void far * pSem; unsigned long cmsTimeout; **Where** //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_SEM_TIMEOUT -- the time-out expired without gaining access to the semaphore. * ERROR_INTERRUPT -- the current thread received a signal. * ERROR_PROTECTION_VIOLATION -- the semaphore is inaccessible. **Remarks** The caller may return 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 sequence. //FSH_SEMWAIT// may block. **Note**: OS/2 does not validate input parameters. An FSD, therefore, should call //FSH_PROBEBUF// where appropriate.