Suppose that you could make use of only transient asynchronous communication primitives, including only an asynchronous receive primitive. Howwould you implement primitives for transient synchronous communication?
Consider a synchronous send primitive. A simple implementation is to send a message to the server using asynchronous communication, and subsequently let the caller continuously poll for an incoming acknowledgment or response from the server. If we assume that the local operating system stores incoming messages into a local buffer, then an alternative implementation is to block the caller until it receives a signal from the operating system that a message has arrived, after which the caller does an asynchronous receive.