module Async::Container::Notify

def self.open!

We cache the client on a per-process basis. Because that's the relevant scope for process readiness protocols.
Select the best available notification client.
def self.open!
	@client ||= (
		Pipe.open! ||
		Socket.open! ||
		Log.open! ||
		Console.open!
	)
end