public void put(T message) {
        synchronized (lock) {
            if (received) {
                throw new IllegalStateException("Multiple puts on a single Receiver instance is not legal.");
            }
            this.message = message;
            received = true;
            lock.notifyAll();
        }
    }
Make a message available for consumers.

@param message the message to send
@throws IllegalStateException if a message has already been received here
vespajlib/src/main/java/com/yahoo/concurrent/Receiver.java