==== MouSynch ==== **Bindings**: [[synch#C bindings|C]], [[synch#MASM bindings|MASM]] This call provides synchronous access for a mouse subsystem to the mouse device driver. //MouSynch// (IOWait) //IOWait// (**USHORT**) - input Wait for access. The flag Word is defined as follows: ^Value ^Definition ^ |0 |Control immediately returned to requestor. | |1 |Requestor waits until mouse device driver is free. | //rc// (**USHORT**) - return Return code descriptions are: |0 |NO_ERROR | |121 |ERROR_SEM_TIMEOUT | **Remarks** [[en:ibm:prcp:mou:synch|MouSynch]] blocks all other threads within a session until the semaphore clears (returns from the subsystem to the router). To ensure proper synchronization, MouSynch should be issued by a mouse subsystem if it intends to access dynamically modifiable shared data for each session or if it intends to issue a [[en:ibm:prcp:cpi:dosdevioctl|DosDevIOCtl]]. [[en:ibm:prcp:mou:synch|MouSynch]] does not protect globally shared data from threads in other sessions. === C bindings === #define INCL_MOU USHORT rc = MouSynch(IOWait); USHORT IOWait; /* Indicate wait/no wait */ USHORT rc; /* return code */ === MASM bindings === EXTRN MouSynch:FAR INCL_MOU EQU 1 PUSH WORD IOWait ;Indicate wait/no wait CALL MouSynch Returns WORD