Synchronous mode is also used when an operation can take an indeterminate amount of time to complete, but the application wishes to handle the function in a sequential manner. The XFS Manager does not return control to the application until the operation has completed, thus synchronous functions are referred to as blocking. Each synchronous call made by an application is translated by the XFS Manager into its asynchronous SPI counterpart before being passed to the service provider.
If a blocking operation is not completed immediately in a Windows 3.x system, the XFS Manager executes a Windows message loop on behalf of the calling thread, thereby keeping the Windows system running. See Section 3.12 for a more detailed discussion of process, threads and message loops. In Windows NT, the calling application thread is blocked on request completion. A thread may have only one blocking WOSA/XFS call outstanding at any one time. See Section 3.12 for additional discussion of the management of synchronous functions, including replacement of the default message loop.
The processing of a synchronous request (e.g., WFSExecute) is as follows: