Note that, when using perfect channels, a message is only guaranteed to be eventually delivered if both the sender and the recipient are correct. If the sender is faulty, no message may ever be delivered. To avoid blocking, a process should be able to make progress if a message takes too long to be received. This behaviour is captured by an abstraction we call impatient channels. Impatient channels offer a blocking receive primitive that always returns a value: either the value sent by the sender, or a special value \(\bot \)  if the sender is faulty or the system is unstable. After the Global Stabilization Time (GST)[1]}, if the sender and the receiver are correct, the receiver always receives the value sent. Impatient channels have the following properties:
