In RSVP we have a resend_interval at which empty messages are sent to trigger retransmission and a timeout which is the max time a caller will block until all acks have been received.
In the down() method, the caller blocks until all acks have been received or a timeout occured. Then the resend task is stopped and the entry removed from the ids map.
In some cases, we may want to not block the caller, so that the calling thread returns immediately, but nevertheless perform resending until all acks have been received or the timeout occurred. This is a new property block.
An example of where this is useful is RpcDispatcher.callRemoteMethodsWithFuture(): here, we want the call to return immediately with a future, and then - later - potentially block on it. However, if we have the RSVP flag set, then sending the message will block in RSVP until all acks have been received. This breaks the semantics of callRemoteMethodsWithFuture().
Another example is async RPCs (mode=GET_NONE); here we'd block if RSVP is set even though we shouldn't.